Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么在getline()之后需要按Enter键两次?_C++_C++17_Getline - Fatal编程技术网

C++ 为什么在getline()之后需要按Enter键两次?

C++ 为什么在getline()之后需要按Enter键两次?,c++,c++17,getline,C++,C++17,Getline,除了在cout::max(),'\n')之后到达getline()时,此程序中的一切都正常工作; 开关(选择){ 案例1: d1.diffbw(); 打破 违约: cout这可能是因为您首先试图通过调用cin.getline()获取一个值,然后程序完成,但正在等待确认,然后按enter键获得确认 基本上 Enter Value: 5 //Presses enter Press any key to exit window. 你的陈述 cout<<"\n\n From

除了在
cout::max(),'\n')之后到达
getline()
时,此程序中的一切都正常工作; 开关(选择){ 案例1: d1.diffbw(); 打破 违约:
cout这可能是因为您首先试图通过调用cin.getline()获取一个值,然后程序完成,但正在等待确认,然后按enter键获得确认

基本上

Enter Value: 5 //Presses enter
Press any key to exit window.

你的陈述

cout<<"\n\n  From Date:";

cout我稍微修改了您的程序,以避免依赖您未定义的日期类:

#包括
#包括
#包括
#包括
#包括
使用名称空间std;
void diffbw();
int main(){
智力选择;
选择;
cin.ignore(数值限制::max(),'\n');
开关(选择){
案例1:
diffbw();
打破
违约:

您使用的是 CIN。不正确地忽略< /代码>。当输入有希望丢弃的输入时,应该忽略输入。当您不能知道输入流的状态时,不应该在输入之前使用。如果使用Linux,则可以考虑使用。输入行可编辑。否则,当YO时应该发生什么?你的程序在一些内部?尝试添加一个
读请提供一个,在这个代码之前你在做什么?程序显然没有在这里完成。getline()后面有一个if块所以,它应该继续执行。不是吗?“实习医生:我们不了解您的程序,因为您没有提供任何程序。在许多操作系统中,<代码> GETLINE 是一个阻塞输入操作。在Linux上,您可以考虑使用用户等待有限的时间。input@BasileStarynkevitch对不起,我犯了错误st加入了stackoverflow。我将尝试了解更多有关它们的信息。我尝试更正cout语法,但没有帮助。我不知道如何使用调试器,但很快将尝试学习。我知道我的程序运行良好,因为我测试了几乎所有的情况(我知道)手动。我在windows 10上使用g++编译器。是的,我尝试了两个带空格的参数,这正确地重定向到显示“错误选择”的else部分但是这次不是请求额外的Enter键。谢谢,我会从下一次考虑。我可以从这个代码中推断出这个问题在“if”和“否则if”块函数,即“GETDATE()”和“SysDATE()”中,但是我尝试用原始代码中的“CIN()”替换“GETLILE()”,它解决了这个问题。
cout<<"\n\n  From Date:";