Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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++中的代码片段- string str; cin>>str;_C++_String - Fatal编程技术网

如何在c++;? 考虑C++中的代码片段- string str; cin>>str;

如何在c++;? 考虑C++中的代码片段- string str; cin>>str;,c++,string,C++,String,如果我在这个阶段简单地按enter键,指针会移动到下一行,但会一直等待输入,即使我有意输入一个空字符串 我的目标是读一个单词。如果我按enter键,它将被视为一个空字符串。使用std::getline: std::string str; std::getline(std::cin, str); 有两种方法: 使用std::getline() 或者使用std::noskipws std::string str; cin >> noskipws >> str; 不要忘记使

如果我在这个阶段简单地按enter键,指针会移动到下一行,但会一直等待输入,即使我有意输入一个空字符串


我的目标是读一个单词。如果我按enter键,它将被视为一个空字符串。

使用
std::getline

std::string str;
std::getline(std::cin, str);
有两种方法:

使用
std::getline()

或者使用
std::noskipws

std::string str;
cin >> noskipws >> str;

不要忘记使用cin.ignore()

不要使用cin,因为它不读取字符串-它读取单词。使用getline读取字符串。@JerryJeremiah此行为可以通过中的说明进行更改。我已包括bits/stdc++。点击工作。实际的问题是我在读取字符串之前读取了一个整数。使用cin.ignore解决了问题。@VishalSharma实际的问题仅仅是使用
操作符>
。不要混合调用
operator>
getline()
。实际上,只要停止使用
操作符>>
就行了——这很奇怪,很笨拙,很难正确使用。如果要读取整数,只需使用
getline()
并使用
std::stoi()
解析输入字符串即可。
std::string str;
cin >> noskipws >> str;