这是我目前的代码。这段代码咳出了 cin.get() 上的错误。我知道这不是好的代码,它不应该是,我只是在测试一些 cin 的东西。
#include <string>
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
char c[1000];
cin.setstate(cin.eofbit);
cout << cin.good() << endl;
cout << cin.eof() <<endl;
cout << cin.get() << endl;
cin.putback('c');
cout << cin.get() << endl;
cout << "Do we ever reach this?" << endl;
while(1){
};
return 0;
}
反正。我的问题是 cin.get()、cin.peek()、cin.ignore()、getchar() 或几乎任何您可以命名的 cin 或 stdio 函数,当流为空时暂停我的程序的执行,无需设置EOF 位或任何东西。这对我来说很烦人,因为我想检查流中是否有任何东西以便我可以清除它,因为 ignore() 总是暂停。
我可以开始工作的唯一方法是“istream::readsome”。我已经将它加载到一个 char 数组中并使用 cout 打印它。它打印一长串我不认识的符号(每个符号都是一个单独的符号)。
http://gyazo.com/e3ee65cdad7ed5cc7b2ce2307ca58c90
转换为整数,结果为 -52,这不等于 ASCII 或 Unicode 中的任何内容。
我正在使用 Visual C++ Express 2010 进行编译。
请帮忙,在这一点上我完全被难住了。我只是想读取字符/刷新我的流,如果没有任何内容,则无需暂停。我花了 3 个小时试图解决这个问题。叹。