确定用户字符输入 C++ 的结束

determining the end of user char input c++

本文关键字:结束 C++ 字符输入 用户      更新时间:2023-10-16

我想处理用户输入,这是一行字符串。 使用字符串库,就像cin >> mystring;一样简单,但出于性能原因,我想一次处理一个字符,而无需保存以前的字符或使用任何类型的数组。 所以我写了这段代码:

char myc;
while(cin >> myc){
dosomething(myc);
}

但是在编写一行字符串作为输入并按 Enter 后,它会处理输入字符,并且仍然等待更多输入字符的到来。 我也用过cin.eof()while(myc),但没有一个有效。

您必须检查换行符,但不能使用std::istream::operator>>执行此操作,因为它是格式化的读取并跳过换行符。用

char myc;
while ((myc = cin.get()) != 'n')
dosomething(myc);
}

要按字符读取流,请使用std::basic_istream<CharT,Traits>::get函数:

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