我想处理用户输入,它是一行字符串。使用字符串库,它就像cin >> mystring;
一样容易,但是出于性能原因,我想一次处理一个字符而不保存以前的字符或使用任何类型的数组。所以我写了这段代码:
char myc;
while(cin >> myc){
dosomething(myc);
}
但是在写了一行字符串作为输入并按回车键之后,它会处理输入字符,并且仍然等待更多输入字符出现。我也使用了cin.eof()
和while(myc)
,但是它们都不起作用。
要按字符读取流,请使用std::basic_istream<CharT,Traits>::get
函数:
std::basic_istream<CharT,Traits>::get
您必须检查换行符,但不能用for(char c; std::cin.get(c);) {
std::cout << c;
}
来做。使用
operator>>