gpt4 book ai didi

C程序执行后控制台立​​即退出?

转载 作者:行者123 更新时间:2023-11-30 18:17:35 25 4
gpt4 key购买 nike

我正在使用 Code::Blocks 进行编程,是的,我是初学者,但每次我编写程序时,它都会在 IDE 中暂停,但在直接执行时不会暂停。

可能的原因是什么?谁能帮我解释一下吗?

我的代码如下:

#include <stdio.h>
void main()
{
float length,breadth,Area;
printf("Enter the value of length and breadth \n\n");
scanf("%f %f",&length,&breadth);
printf("You entered length=%f and breadth=%f \n\n",length,breadth);
Area= length * breadth;
printf("The area of the rectangle is %f\n\n",Area);
return 0;
}

最佳答案

您必须告诉您的程序在最后等待输入,否则它将执行,完全按照您在代码中编写的操作然后退出。 “好”的方法是从终端执行它(如果你在 Windows 上,则为 cmd)

#include <stdio.h>
int main()
{
float length,breadth,Area;
printf("Enter the value of length and breadth \n\n");
scanf("%f %f",&length,&breadth);
getchar(); // catch the \n from stdin
printf("You entered length=%f and breadth=%f \n\n",length,breadth);
Area= length * breadth;
printf("The area of the rectangle is %f\n\n",Area);
getchar(); // wait for a key
return 0;
}

为什么在 scanf() 之后需要 getchar() ?

当您输入数字时,按 Enter 键即可完成。让我们看看您正在阅读的内容:一个 float 空白和另一个 float 。 \n 不会被 scanf() 使用,而是留在输入缓冲区 (stdin) 中。下次使用从 stdin 读取的函数时,该函数看到的第一个符号是 \n (Enter)。要从输入缓冲区中删除此 \n,您必须在 scanf() 之后调用 getchar(),它会从输入缓冲区读取 1 个字符。我相信您将来会更频繁地遇到这种行为。

关于C程序执行后控制台立​​即退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24780415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com