我有2个char
类型的变量。
char desc[30];
char code[2];
cout << "Enter values : "<<"\n";
cin.getline(desc,30);
cin.getline(code,2);
cout << "\nValues Entered: "<<"\n";
cout << desc <<"\t";
cout << code <<"\n";
当按如下所示提供输入值时,第二个变量的第二个字符将丢失。我尝试了cin>>marks
和cin.get(marks,2)
,但是行为始终相同。
输入值: 这是一条测试线 LH 输入的值: 这是测试线L 进程返回0(0x0)执行时间:11.285 s 按任意键继续。
在上面的示例中,即使输入为LH
,在输出中也只有'L'可用而'H'丢失了。有人可以告诉我这里有什么问题吗?
看一下getline
(重点是我的)文档:
写入s的最大字符数(包括终止的null字符)。
因此,如果您想读两个符号,则必须输入的大小3
。
cin.getline(code,3);
将缓冲区大小3
也更改为:
char code[3];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句