C++ cin的问题
我以两种不同的方式使用cin:一种方式我只是使用cin(重载)>>变量,另一种方式我使用一个名为read的函数,它接受一个istream 我的代码是:C++ cin的问题,c++,cin,istream,C++,Cin,Istream,我以两种不同的方式使用cin:一种方式我只是使用cin(重载)>>变量,另一种方式我使用一个名为read的函数,它接受一个istream 我的代码是: cin >> string6; cout << string6; string7.read(cin); cout << string7; cin>>string6; 无法我没有您的代码,因此无法测试,但这可能会起作用: istream& ignore ( streamsize n = 1, in
cin >> string6;
cout << string6;
string7.read(cin);
cout << string7;
cin>>string6;
无法我没有您的代码,因此无法测试,但这可能会起作用:
istream& ignore ( streamsize n = 1, int delim = EOF );
从输入序列中提取字符并丢弃它们
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
cin.ignore(std::numeric_limits::max(),'\n');
“cin>>”将一直读取到下一个换行符。可以使用cin.ignore()删除字符。您还可以使用cin.peek()检查当前在流前面的内容
所以
将“^D”替换为实际代码。你也可以这样做
while( !isalpha( cin.peek() ) )
{
cin.ignore();
}
为了确保cin以字母字符开头。也许你需要代替string7.read()
?不能这样做,我必须使用read()。read()不是std::string的成员,你在使用什么字符串?你知道std::string
没有标准的read()
方法吗?我正在使用我的string类,它是字符串的链表表示形式。read()是我为它准备的一个成员函数。它所做的只是ifstream>>*这个。
while( !isalpha( cin.peek() ) )
{
cin.ignore();
}