这里的主要初学者,如何使用以下方法遍历用户输入中的每个字符:
get(char& c)
我想在一个循环中使用它来对每个角色做一些事情(包含空白),但我现在无法让它工作。
如果可以,请提供示例代码。
由于
这就是我现在所拥有的:
for (char& c : cin.get(char& c)) {
cout << c;
}
答案 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'
}