Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.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 为什么我的Do和while函数在我输入值时关闭?_C - Fatal编程技术网

C 为什么我的Do和while函数在我输入值时关闭?

C 为什么我的Do和while函数在我输入值时关闭?,c,C,我现在被困在这段代码上,它似乎会自动关闭,以便输入任何内容?我花了整整15-18分钟,但我似乎不明白为什么。此语法也直接来自我的C指南>您在这里错了: input=scanf(“%d”,&input) 您正在变量input中获取输入,但您正在用返回值scanf覆盖它 如果扫描第一次输入时出现错误,则成功输入的值数或EOF 因此,无论您输入什么值,变量input都会获得1或EOF的值,因此,您的do while循环可能会中断 您应该这样使用它: int ret; ret = scanf("%d",

我现在被困在这段代码上,它似乎会自动关闭,以便输入任何内容?我花了整整15-18分钟,但我似乎不明白为什么。此语法也直接来自我的C指南>您在这里错了:

input=scanf(“%d”,&input)

您正在变量
input
中获取输入,但您正在用返回值
scanf
覆盖它

如果扫描第一次输入时出现错误,则成功输入的值数或
EOF

因此,无论您输入什么值,变量
input
都会获得
1
EOF
的值,因此,您的
do while
循环可能会中断

您应该这样使用它:

int ret;
ret = scanf("%d", &input);
你错了:

input=scanf(“%d”,&input)

您正在变量
input
中获取输入,但您正在用返回值
scanf
覆盖它

如果扫描第一次输入时出现错误,则成功输入的值数或
EOF

因此,无论您输入什么值,变量
input
都会获得
1
EOF
的值,因此,您的
do while
循环可能会中断

您应该这样使用它:

int ret;
ret = scanf("%d", &input);
你错了:

input=scanf(“%d”,&input)

您正在变量
input
中获取输入,但您正在用返回值
scanf
覆盖它

如果扫描第一次输入时出现错误,则成功输入的值数或
EOF

因此,无论您输入什么值,变量
input
都会获得
1
EOF
的值,因此,您的
do while
循环可能会中断

您应该这样使用它:

int ret;
ret = scanf("%d", &input);
你错了:

input=scanf(“%d”,&input)

您正在变量
input
中获取输入,但您正在用返回值
scanf
覆盖它

如果扫描第一次输入时出现错误,则成功输入的值数或
EOF

因此,无论您输入什么值,变量
input
都会获得
1
EOF
的值,因此,您的
do while
循环可能会中断

您应该这样使用它:

int ret;
ret = scanf("%d", &input);
input=scanf(“%d”,&input)scanf
的结果存储在
input
变量中时,code>将返回
EOF
1

如果输入任何整数值,它将返回
1
,即成功读取的输入数

在您的情况下,您需要执行以下操作:

int retval; 
retval = scanf("%d", &input);
input=scanf(“%d”,&input)scanf
的结果存储在
input
变量中时,code>将返回
EOF
1

如果输入任何整数值,它将返回
1
,即成功读取的输入数

在您的情况下,您需要执行以下操作:

int retval; 
retval = scanf("%d", &input);
input=scanf(“%d”,&input)scanf
的结果存储在
input
变量中时,code>将返回
EOF
1

如果输入任何整数值,它将返回
1
,即成功读取的输入数

在您的情况下,您需要执行以下操作:

int retval; 
retval = scanf("%d", &input);
input=scanf(“%d”,&input)scanf
的结果存储在
input
变量中时,code>将返回
EOF
1

如果输入任何整数值,它将返回
1
,即成功读取的输入数

在您的情况下,您需要执行以下操作:

int retval; 
retval = scanf("%d", &input);

函数
scanf
返回EOF或分配的项目数。在您的代码中,只分配了一个项目“输入”。因此,在成功的情况下,函数scanf返回1。1大于-1且小于'0'。所以你要输入什么数字并不重要。在任何情况下,scanf都将返回1

根据C标准中的功能描述

3如果输入错误,scanf函数返回宏EOF的值 在第一次转换(如果有)完成之前发生故障。 否则,scanf函数将返回输入项目的数量 已分配,该值可以小于中提供的值,甚至可以为零 早期匹配失败的事件

更改此声明

input = scanf("%d", &input);
执行scanf后将输入重新分配给

scanf("%d", &input );

函数
scanf
返回EOF或分配的项目数。在您的代码中,只分配了一个项目“输入”。因此,在成功的情况下,函数scanf返回1。1大于-1且小于'0'。所以你要输入什么数字并不重要。在任何情况下,scanf都将返回1

根据C标准中的功能描述

3如果输入错误,scanf函数返回宏EOF的值 在第一次转换(如果有)完成之前发生故障。 否则,scanf函数将返回输入项目的数量 已分配,该值可以小于中提供的值,甚至可以为零 早期匹配失败的事件

更改此声明

input = scanf("%d", &input);
执行scanf后将输入重新分配给

scanf("%d", &input );

函数
scanf
返回EOF或分配的项目数。在您的代码中,只分配了一个项目“输入”。因此,在成功的情况下,函数scanf返回1。1大于-1且小于'0'。所以你要输入什么数字并不重要。在任何情况下,scanf都将返回1

根据C标准中的功能描述

3如果输入错误,scanf函数返回宏EOF的值 在第一次转换(如果有)完成之前发生故障。 否则,scanf函数将返回输入项目的数量 分配的,哪个可以b