Cin, cin.get 和一个我无法理解的东西
Cin, cin.get and a thing that I cant understand
我这样写循环对不对
char temp;
while(cin.get(temp)) {
...
}
当输入流中没有符号时它会停止,如果流为空则不会执行?
好吧,我知道这不是真的,因为当我尝试时 - 它的工作原理与 cin >> temp
相同。那么,我怎么知道流是空的,这个循环必须停止?
overload of get
that you use returns 对流对象的引用。
流 类 有 a boolean conversion operator 其中 returns false
错误或 文件结尾 .
因此,如果您在 POSIX 系统(如 Linux 或 macOS,或 Ctrl-Z 在 Windows) 的新行上,然后它将传播到流并且循环条件将变为 false
并且循环结束。
如果你想在一个特定的字符上结束循环,比如换行符,那么你需要在条件中添加它:
while (cin.get(temp) && temp != '\n')
我这样写循环对不对
char temp;
while(cin.get(temp)) {
...
}
当输入流中没有符号时它会停止,如果流为空则不会执行?
好吧,我知道这不是真的,因为当我尝试时 - 它的工作原理与 cin >> temp
相同。那么,我怎么知道流是空的,这个循环必须停止?
overload of get
that you use returns 对流对象的引用。
流 类 有 a boolean conversion operator 其中 returns false
错误或 文件结尾 .
因此,如果您在 POSIX 系统(如 Linux 或 macOS,或 Ctrl-Z 在 Windows) 的新行上,然后它将传播到流并且循环条件将变为 false
并且循环结束。
如果你想在一个特定的字符上结束循环,比如换行符,那么你需要在条件中添加它:
while (cin.get(temp) && temp != '\n')