Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;字符串问题_C++_String - Fatal编程技术网

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