汕头建站,外贸门户网站,国际要闻,手机网站页面C中iostream 的cin str 和string的getline(cin, str) 用来读取用户输入的两种不同方式的不同点 #xff1c;string#xff1e;的getline()函数语法如下【https://cplusplus.com/reference/string/string/getline/】#xff1a;
istream getl…C中iostream 的cin str 和string的getline(cin, str) 用来读取用户输入的两种不同方式的不同点 string的getline()函数语法如下【https://cplusplus.com/reference/string/string/getline/】
istream getline (istream is, string str, char delim);
其中is是输入流对象str是目标字符串对象delim是可选参数表示定界符分隔符默认为换行符\n。
使用getline()函数时它会从输入流中读取一行文本并将读取到的内容存储到目标字符串str中直到遇到定界符或文件结尾为止。如果指定了定界符delim则getline()函数会在遇到该字符时停止读取否则默认为换行符。
例子
#include iostream
#include string
using namespace std;int main() {string str;cout 请输入名字;getline(cin, str); //cin str;// 检查字符串是否为空if (str.empty()) {cout The string is empty. endl;} else {cout The string is not empty. endl;}return 0;
}运行效果 特别说明C中iostream 的cin str 和string中getline(cin, str) 用来读取用户输入的两种不同方式的不同点 ☆ 数据类型不同cin str是用来读取字符串类型的单个单词或数字型数据整数、实数等而getline(cin, str)则是用来读取整行的字符串。 ☆ 分隔符使用cin str时输入被空白字符如空格、制表符、换行符分隔为不同的字符串并将第一个非空白字符开始的连续字符序列存储到str中剩余部分将会留在输入队列中而getline(cin, str)则会读取整行输入包括空白字符在遇到换行符之前将其存储到str中。 ☆ 输入限制cin str只能读取到空白字符之前的内容因此无法读取含有空格的字符串一次只能读取一个单词或数字。而getline(cin, str)可以读取包含空格的完整行因此可以读取多个单词或整行文本。 ☆ 换行符处理cin str读取后会将换行符留在输入流中可以影响下一次读取操作。相比之下getline(cin, str)会将换行符从输入流中移除以防止影响后续读取操作。 【注空白字符是指在文本中没有可见形式的字符主要包括空格、制表符和换行符。它们在文本处理中具有不同的作用。 空格Space表示一个可见的空间在文本中起到分隔单词或字符的作用。多个连续的空格会被视为一个空格。 制表符Tab通常用\t来表示在文本中占据一个固定的宽度经常用于对齐文本中的内容。 换行符Newline表示换行的特殊字符在不同的操作系统中可能有不同的表示方式。在Unix和Linux系统中换行符用\n表示在Windows系统中换行符由两个字符组成即回车符Carriage Return和换行符用\r\n表示。 这些空白字符在输入和输出操作中都需要注意处理。在C中空白字符通常用于分隔不同的数据项而换行符用于标识一行的结束。了解和正确处理这些字符对于正确解析和处理用户输入以及生成正确格式的输出非常重要。】 需要注意的是在C中有两种getline函数。第一种定义在头文件istream中https://cplusplus.com/reference/istream/istream/getline/ 第二种定义在头文件string中https://cplusplus.com/reference/string/string/getline/ 。 istream中的getline()函数用于从输入流中读取一行文本而string中的getline()函数用于从一个字符串中读取一行文本。
前面介绍的是string中的getline()函数。
下面介绍istream中的getline()函数getline()函数是istream类的一个成员函数可以从输入流如cin读取一行文本并存储到一个std::string对象中。它的函数原型为
istream getline (char* s, streamsize n, char delim );
参数说明
s表示指向字符数组的指针其中提取的字符存储为 c 字符串。
n指定了字符数组s的最大长度。
delim可选参数表示行的分隔符如果不指定默认为换行符\n。
istream中的getline()函数用于读取一行文本存储到字符数组中。
例如
#include iostream
using namespace std;int main()
{char name[256];cout Please input your name: ;cin.getline(name, 256); // 从标准输入读取一行文本cout The result is: name endl;return 0;
}运行之 附录 C中两种getline函数用法还可参见 https://www.jb51.net/article/180289.htm