我尝试在cin之后使用getline,但编译器忽略它并直接转到下一个输入
mounted
答案 0 :(得分:0)
程序中的问题是当您输入id并在运行时按Enter键时,空间被视为输入并保留在输入缓冲区中,直到您使用它为止。所以,你需要消耗这个空间。因此很容易认为C ++编译器会跳过对getline(cin,name)
函数的调用,但实际上并非如此。
答案 1 :(得分:0)
你可以在getline之前使用cin.ignore()当getline在流中看到\ n时结束...在cin指令中用户必须按Enter才能结束输入..所以getline在缓冲区中找到它并且编译器将跳过它..所以你必须从流
中忽略它cin >> id;
cin.ignore(100,'\n');
getline(cin,name);