gpt4 book ai didi

C程序编译但不执行

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:09 24 4
gpt4 key购买 nike

我成功地为 C 安装了 NetBeans,但我不知道出了什么问题,因为每当我编写任何代码时,它都会显示“构建成功”,但它不会执行。当我点击运行按钮时没有任何反应,Netbeans 只是编译代码但屏幕上没有显示任何内容。

下面是简单的代码:

int main(void) {
int a=0;
printf("input any number");
scanf("%d",&a);
return (EXIT_SUCCESS);
}

这是它的编译:

""/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/c/Users/timekeeper/Documents/NetBeansProjects/ft'
"/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/ft.exe
make.exe[2]: Entering directory `/c/Users/timekeeper/Documents/NetBeansProjects/ft'
mkdir -p build/Debug/MinGW-Windows
rm -f "build/Debug/MinGW-Windows/main.o.d"
gcc -std=c99 -c -g -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.c
mkdir -p dist/Debug/MinGW-Windows
gcc -std=c99 -o dist/Debug/MinGW-Windows/ft build/Debug/MinGW-Windows/main.o
make.exe[2]: Leaving directory `/c/Users/timekeeper/Documents/NetBeansProjects/ft'
make.exe[1]: Leaving directory `/c/Users/timekeeper/Documents/NetBeansProjects/ft'

BUILD SUCCESSFUL (total time: 34s)
""

我该怎么办?提前致谢

最佳答案

stdout 流是行缓冲的。这意味着无论您将 fwriteprintf 等写入到 stdout 中,直到换行符 (\n) 遇到。

因此您的程序已将您的字符串缓冲,并在 scanf 上被阻止,等待来自 stdin 的输入。一旦发生这种情况,您的控制台窗口就会关闭,并且您永远看不到打印。

要解决此问题,请在字符串末尾添加一个换行符:

printf("input any number:\n");        // Newline at end of string

或手动刷新 stdout:

printf("input any number: ");
fflush(stdout); // Force stdout to be flushed to the console

此外,我假设 (total time: 34s) 数字包括程序等待您键入内容的时间。您非常有耐心,大约 34 秒后,终于在键盘上敲击了一些东西,之后程序结束,控制台窗口关闭。

或者,如果 Netbeans 没有打开单独的控制台窗口,这一切都发生在 Netbeans IDE 的 MDI 面板之一中。

关于C程序编译但不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26900167/

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