[英]How can I make the cin.getline work?
void CDepartment::Engg() {
system("cls");
Invent.welcome();
cout<<"\t (ADD AN ASSET)\n=========================================================\n\t COLLEGE OF ENGINEERING\n=========================================================\n";
cout<<"\tWhich department?\n\t-Civil Engineering\n\t-ECE and CPE\n\t-[Ba]ck\n\n\tChoice:";
cin.getline(choice_1,20);
if (strcmp(choice_1,back)==0){
Invent.add();}
Invent.Info();
}
choice_1
是全局声明的。 这是行不通的。 它跳过cin.getline(choice_1,20);
。 我该如何运作?
您是否尝试过在cin.ignore()
之前使用cin.getline()
? 有时,它可能有助于清除(可能不是完全清除,它会从输入序列中提取字符并丢弃它们 )存储在缓冲区中的不需要的字符。
//...
cout<<"\tWhich department?\n\t-Civil Engineering\n\t-ECE and CPE\n\t-[Ba]ck\n\n\tChoice:";
cin.ignore(256, '\n');
cin.getline(choice_1,20);
//...
您是否尝试过进行逐步调试? 看看choice_1变量会发生什么?
编辑 :尝试添加cin.get();
在您的行之前,否则可能只是试图读取空白的“ \\ n”而不是实际的输入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.