Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.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

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++;:为什么读取时空格总是以字符串结尾? 使用类型 STD::String 接受一个句子,用于练习(我没有用C++中的字符串处理),我检查字符是否是元音。我明白了: for(i = 0; i <= analyse.length(); i++) { if(analyse[i] == 'a' || analyse[i] == 'e' [..etc..]) { ...vowels++; } else { ... ...consonants++; }_C++_String_Std - Fatal编程技术网

C++;:为什么读取时空格总是以字符串结尾? 使用类型 STD::String 接受一个句子,用于练习(我没有用C++中的字符串处理),我检查字符是否是元音。我明白了: for(i = 0; i <= analyse.length(); i++) { if(analyse[i] == 'a' || analyse[i] == 'e' [..etc..]) { ...vowels++; } else { ... ...consonants++; }

C++;:为什么读取时空格总是以字符串结尾? 使用类型 STD::String 接受一个句子,用于练习(我没有用C++中的字符串处理),我检查字符是否是元音。我明白了: for(i = 0; i <= analyse.length(); i++) { if(analyse[i] == 'a' || analyse[i] == 'e' [..etc..]) { ...vowels++; } else { ... ...consonants++; },c++,string,std,C++,String,Std,我无法从您粘贴的代码中分辨出来,但我将冒险猜测您正在使用流提取操作符(stream>>string)读取字符串 流提取操作符遇到空白时停止 如果不是这样,你能告诉我们你是如何填充你的字符串的,它的内容是什么吗 如果我是对的,那么您将需要一种不同的方法将内容读入字符串。std::getline()可能是读取文件的最简单方法。它停在换行符而不是空格处 根据已编辑的问题进行编辑: 使用此选项(仔细检查语法。我不在编译器前面): 当您按“回车”键时,应该停止读取。如果您想读取整行内容(包括空格),则应

我无法从您粘贴的代码中分辨出来,但我将冒险猜测您正在使用流提取操作符(stream>>string)读取字符串

流提取操作符遇到空白时停止

如果不是这样,你能告诉我们你是如何填充你的字符串的,它的内容是什么吗

如果我是对的,那么您将需要一种不同的方法将内容读入字符串。std::getline()可能是读取文件的最简单方法。它停在换行符而不是空格处


根据已编辑的问题进行编辑: 使用此选项(仔细检查语法。我不在编译器前面):


当您按“回车”键时,应该停止读取。

如果您想读取整行内容(包括空格),则应使用getline进行读取。示意图如下所示:

#include <string>
istream& std::getline( istream& is, string& s );
string s;
getline( cin, s );
cout << "You entered " << s << endl;
#包括
istream&std::getline(istream&is,string&s);
要阅读整行文字,请执行以下操作:

#include <string>
istream& std::getline( istream& is, string& s );
string s;
getline( cin, s );
cout << "You entered " << s << endl;
字符串s;
getline(cin,s),;

cout我猜你是在用
your\u-stream>>your\u-string。字符串的运算符
>
被定义为与
scanf
%s
转换工作(大约)相同,该转换一直读到遇到空格为止——因此,
运算符>>
执行相同的操作


您可以使用
std::getline
读取整行输入。您可能还想看看我在前面的问题上发布的一个问题(提供了一些替代
std::getline
)。

istream上的
>
操作符将字符串分隔在空白处。如果您想得到一整行,可以使用
readline(cin,destination\u string)

它不是std::string,它可以容纳任何字符,包括空格和空字符。显示如何读取字符串。如何设置
分析
?如果你站在一边,你会得到什么。。将长度存储在变量中(const int ci=analysis.length();)for中的函数是错误的做法。getline工作正常。很高兴这不是什么随机问题,帮助我学习。谢谢你的答案链接,+1你想要的是
getline
,而不是
readline
?虽然有些库包含名为
readline
的函数,但它不是标准库的一部分。(其他语言使用readline,这就是我感到困惑的原因。)