C++ C++;字符串问题
我有一个非常简单的问题C++ C++;字符串问题,c++,string,C++,String,我有一个非常简单的问题 string str; cin >> str; cout << str; string-str; cin>>str; coutgetline(cin,str)是正确的方法。什么意思?它只在第一次读取输入,而跳过其余部分?getline(cin,str)应该可以工作,但是如果遇到“字符跳过”,您可能需要在调用它之前清除输入缓冲区: std::cin.ignore(std::numeric_limits::max(),'\n'); std::字符串s
string str;
cin >> str;
cout << str;
string-str;
cin>>str;
coutgetline(cin,str)是正确的方法。什么意思?它只在第一次读取输入,而跳过其余部分?getline(cin,str)
应该可以工作,但是如果遇到“字符跳过”,您可能需要在调用它之前清除输入缓冲区:
std::cin.ignore(std::numeric_limits::max(),'\n');
std::字符串str;
std::getline(std::cin,str);
问题是,操作符>
在输入缓冲区中留下下一个空格/换行符/任何内容。因此,如果调用cin>>str
后接getline(cin,str)
,则getline操作将看到输入缓冲区中的第一个字符是换行符,并停止。如果我在getline()之前先写一个cin;e、 g.cin>>var1;getline(cin,var2);它将获得var1的输入,但跳过var2
std::cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );
std::string str;
std::getline(std::cin, str);