使用 cin.get() 读取字符
The use of cin.get() to read a character(s)
有人可以在下面向我解释cin.get((的工作原理吗?我的想法是 cin.get(( 从键盘中获取一个字符(当您键入它时(,将其分配给 character1,然后将其与 EOF 进行比较,如果此比较不相等,它会打印它,然后返回 while 循环并执行相同的操作,直到输入 EOF 字符。我希望看到的是每次输入字符时打印字符,直到输入 EOF,但我惊讶地看到程序在我输入 EOF 然后打印所有字符之前都会接收字符。
int character1;
cout << "Before input, cin.eof() is " << cin.eof()<< endl
<< "Enter a sentence followed by end-of-file:" << endl;
while ((character1 = cin.get()) != EOF)
cout.put(character1);
cout << "nEOF in this system is: " << character << endl;
EOF/cin.eof(( 与 ASCII/tty EOF 字符不同。在这两种情况下,该值仅在上下文中有意义,否则可能实际上不存在。
在 Windows EOF 上,用 Ctrl+Z 发出信号。
在 *nixen 上,它用 Ctrl+D 发出信号。
无论哪种方式,您都无法将其打印到终端。告诉用户按正确的键。请记住,EOF
的值与输入流中的任何内容完全无关(除了不能表示为有效字符值(。
在向 EOF 发出信号之前,您看不到任何输出,因为默认情况下,终端输入是行缓冲的。尝试在输入序列中按 Enter 以查看效果。如果你想玩无缓冲的输入,那么这是另一个问题的(长(答案。
相关文章:
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 从矢量C++读取字符时出现问题
- 从格式化输入操作中获取读取字符数
- 使用 cin.get 读取字符数组
- 按下回车键时,如何使数组停止读取字符
- C++:读取字符是不正确的
- 如何从输入文件中读取字符并将其存储到向量中?
- 线程函数无法从堆上分配的缓冲区中读取字符
- 使用 cin.get() 读取字符
- C++:使用 fgets() 读取字符输入时出错
- C++ 从文件中读取字符,计算每个字符并进行排序
- C ++ ifstream 无法读取字符串,并且在读取字符时出错
- 逐字读取字符数组,无需字符串函数
- 是否有任何方法可以在用户输入文本时读取字符
- 从字符串中读取字符时出错
- 如何按字符从文件到2D数组读取字符
- 重载>>运算符和读取字符
- 从堆栈中读取字符后,如何修复不正确的文件输出
- 如何从文件中读取“”字符
- 读取字符 * 始终具有相同的地址