【问题标题】:C program compiles but does not executeC程序编译但不执行
【发布时间】:2014-11-13 02:07:19
【问题描述】:

我成功安装了 NetBeans for C,但我不知道出了什么问题,因为每当我编写任何代码时,它都会显示“构建成功”但它没有执行。 当我点击运行按钮时没有任何反应,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)
""

我该怎么办? 提前致谢

【问题讨论】:

  • 你也需要发布你的代码。
  • 代码在上面。
  • 控制台可能一打开就关闭了。此外,对于如此简单的事情,34 秒的编译时间似乎太长了。
  • 我刚刚在netbeans中尝试过,我的运行良好。就我而言,实际上在构建完成后,Netbeans 将在 building-output-tab 旁边打开另一个输出选项卡。试试看。

标签: c netbeans-7 netbeans-plugins


【解决方案1】:

stdout 流是行缓冲的。这意味着在遇到换行符 (\n) 之前,您的 fwrite 或 printf 等到 stdout 的任何内容实际上都不会写入您的终端。

所以你的程序缓冲了你的字符串,并在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 窗格之一中。

【讨论】:

  • 那么为什么我会在使用 NetBeans 时遇到这个奇怪的问题?我没有正确安装 NetBeans 吗?如果是这样,你能推荐任何我可以看到并正确安装它的网页吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多