C++ cin的问题

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:一种方式我只是使用cin(重载)>>变量,另一种方式我使用一个名为read的函数,它接受一个istream

我的代码是:

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();
}