Abi*_*nda 3 c++ string char getline
我有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";
Run Code Online (Sandbox Code Playgroud)
当按如下所示提供输入值时,第二个变量的第二个字符将丢失。我尝试了cin>>marks和cin.get(marks,2),但是行为始终相同。
输入值: 这是一条测试线 LH 输入的值: 这是测试线L 进程返回0(0x0)执行时间:11.285 s 按任意键继续。
在上面的示例中,即使输入为LH,在输出中也只有'L'可用而'H'丢失了。有人可以告诉我这里有什么问题吗?
看一下getline(重点是我的)文档:
写入s的最大字符数(包括终止的null字符)。
因此,如果您想读两个符号,则必须输入的大小3。
cin.getline(code,3);
Run Code Online (Sandbox Code Playgroud)
将缓冲区大小3也更改为:
char code[3];
Run Code Online (Sandbox Code Playgroud)