C++ getline函数的用法

2024-12-04 23:56:18
推荐回答(2个)
回答(1):

应该是因为标准输入每次回车都向程序输入数据的原因。
标准输入是以回车为单位向程序输入数据,也就是说当ni hao回车后,程序得到了如下输入
”ni hao\n",这个串被第一个getline读取后,因为正常读到了分隔符,认为输入数据并没有结束,第二个getline再次读取时,发现标准输入数据中没有内容缺燃,返回空串,同时标记输入数据结束。
这个问题只会发生在标准输入上,读文猛戚件没有这个问题,读文件时第枝扮陵二个getline会读到第二行数据。

回答(2):

你没给s分配空间也没初始化,s就是个野指针。
char*
s
=
new
char[1001];
memset(s,
0,
1001);
cout<<孝敏"请输入字符串,以‘\n‘结束:\n";
cin.getline(s,1000,'\n');cin.getline(s,1000,'巧迟枝\n'旦空);