循环遍历用户输入中的每个字符

时间:2013-12-20 18:52:02

标签: c++ get

这里的主要初学者,如何使用以下方法遍历用户输入中的每个字符:

get(char& c)

我想在一个循环中使用它来对每个角色做一些事情(包含空白),但我现在无法让它工作。

如果可以,请提供示例代码。

由于

这就是我现在所拥有的:

for (char& c : cin.get(char& c)) { 
    cout << c;
}

2 个答案:

答案 0 :(得分:3)

就我个人而言,我会这样写;

std::string s;
while(std::getline(std::cin, s)) {
    for(char c : s) {
        std::cout << c;
    }
}

虽然如果你想保留它,不要忘记考虑'\ n'分隔符。请注意,除非你转动终端缓冲(非标准),否则你只能逐行输入。

注意,您可以通过发信号通知文件结尾来结束循环。在linux上,用户必须按Ctrl + d。

否则你可以在循环中添加一些逻辑并中断。例如

if(c == 'q') break;

答案 1 :(得分:0)

你可以对输入的字符进行循环,直到输入的字符为enter(Ascii代码13)

char c;

while ((intVal = (int)cin.get(c)) != 13){
...do processing on the character 'c'
}

或使用

char c;
    int intVal=0;

    while ((c = cin.get()) != 13){
    ...do processing on the character 'c'
    }