标题:关于缓冲 关于^z的小小疑问
只看楼主
iangzy
Rank: 1
等 级:新手上路
帖 子:27
专家分:8
注 册:2012-8-14
结帖率:30%
已结贴  问题点数:10 回复次数:6 
关于缓冲 关于^z的小小疑问
程序代码:
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
int main()
{
    string currWord,preWord;
    cout<<"Enter somewords:(Ctral+Z to end)"<<endl;
    while(cin>>currWord)
    {
#ifndef NDEBUG
        cout<<currWord<<endl;
#endif
        if(!isupper(currWord[0]))
            continue;
        if(currWord==preWord)
            break;
        else
            preWord=currWord;
    }
    if(currWord==preWord&&!currWord.empty())
        cout<<"The is no repeated wor that has initial capital."<<endl;
    else
        cout<<"There is no repeated word that has initial capital."<<endl;

    return 0;
}


为何这段程序输入MM MM^Z时会出现跟所设计的结果不一样?
且程序第一次读入MM后不会立即读入MM^Z而是等到下次输入NN ^Z时再一起读入上次的MM^Z,
也就是说输入NN^Z加回车后程序读入的是MM^ZNN,
搜索更多相关主题的帖子: 疑问 
2013-05-27 12:11
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:0 
你这个程序是全的吗?

C++菜鸟
2013-05-27 13:31
iangzy
Rank: 1
等 级:新手上路
帖 子:27
专家分:8
注 册:2012-8-14
得分:0 
回复 2楼 lzj12530
书本复制的,,目测是全的
2013-05-27 13:36
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:0 
^Z 控制符前面
如果有字符那么不会作为结束控制符.只有输入回车或者单独输入^Z才能结束输入流。所以你直接输入MM^Z是不会结束输入的。要结束只有键入回车或者单独输入^Z

C++菜鸟
2013-05-27 13:46
iangzy
Rank: 1
等 级:新手上路
帖 子:27
专家分:8
注 册:2012-8-14
得分:0 
回复 4楼 lzj12530
第一次读入MM后不会立即读入MM^Z而是等到下次输入NN ^Z时再一起读入上次的MM^Z,
也就是说输入NN^Z加回车后程序读入的是MM^ZNN,

????
2013-05-27 13:51
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:5 
恩,就是这意思

C++菜鸟
2013-05-27 14:17
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:5 
以下是引用iangzy在2013-5-27 13:51:45的发言:

第一次读入MM后不会立即读入MM^Z而是等到下次输入NN ^Z时再一起读入上次的MM^Z,
也就是说输入NN^Z加回车后程序读入的是MM^ZNN,
 
????

一般来说,是回车之后系统才会一次性把输入的内容送去程序处理。

在终端里 ctrl-z 往往需要在行首才会有控制意义,不然很可能会被程序作为一般字符处理。
2013-05-28 12:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-408872-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.258310 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved