"while (c = getchar())" C++ 中的等效项
"while (c = getchar())" equivalent in c++
是否有某种惯用表达式使用类似于的c++iostream库
while (c = getchar())
c中的成语?
注意:我将语句简单地保留为"c=getchar()",以使其更通用。在实际代码中,我会将其结果与EOF或换行符等其他内容进行比较。
#include <iostream>
int main() {
char c;
std::cin >> std::noskipws;
while(std::cin >> c) {
std::cout << c << std::endl;
}
}
最接近getchar()的等价物是std::istream::get():
while ((c = std::cin.get()))
注意双括号;这些用于避免编译器警告在循环条件中使用CCD_ 1而不是CCD_。
注意:我将语句简单地保留为"c=getchar()",以使其更通用。在实际代码中,我会将其结果与EOF或换行符等其他内容进行比较。
嗯,这是不太通用的。如果它是任何东西的通用版本,那么它一般表示一个常见错误所有软件都应在的任何位置处理EOF条件。
在C++中,我们使用流缓冲区,根据成功与否,流缓冲区可以作为真值或假值进行比较。没有必要使用EOF作为假流值,尽管你可以选择这样做
成语(sans-bug)应该是
while ( std::cin.get( c ) )
如果您想使用下一个换行符并在每次迭代中解析一行,而不需要以空行结束文件,那么使用
std::string s;
while ( getline( std::cin, s ) ) {
std::istringstream line( s );
然后可以使用line >> x
提取项目。
相关文章:
- 如何使用 SIGINT 在第二个线程中断 getchar
- 如果输入缓冲区不为空,请使用getchar.()检测Ctrl+d
- getchar() 避免转义序列
- getchar() 函数如何输出
- Python 3中是否有内置功能,例如C 中的GetChar()
- 6031:在Visual Studio 2019中忽略了返回值(getchar())
- 无法使我的getChar()函数能够工作,我希望它能正常工作,输出IS10而不是2 C
- 使用getchar()获取字符并将其保存到每次C 的新行中的文件中
- 如何在不按 Enter 的情况下传递 getchar() 以使其自动?
- 从文件而不是getchar中获取字符
- 需要澄清 getchar() 和换行符
- 从 getchar 读取输入
- 为什么getchar()会阻塞所有线程
- 用"fprintf"打印错误后调用"getchar()"有什么意义?
- 使用getchar()函数
- omxplayer中复杂的getchar()操作
- SFML 2.1 getchar equivalent
- 了解 Getchar 已解锁
- getchar 有什么问题(因为程序在没有检查的情况下退出循环)
- 使用 getchar() 输入字符的最有效方法,就像 cin 中没有换行符和空格字符一样C++