无法在RedHat中运行程序

我写了一些简单的程序

int main(){ printf("hello word!"); return 0; } 

我编译它使用gcc -o hello hello.c (没有错误),但是当我in terminal使用./hello运行它时in terminal我什么都看不到,为什么? 提前致谢

可能是缺少的换行符,这样输出就会被下一个提示所打乱。

尝试:

 printf("hello world\n"); 

这个版本也使用更传统的信息。

将\ n添加到您的打印字符串,以便输出缓冲区被刷新到您的终端。

 printf("hello world!\n"); 

此外,你应该包括stdio标题,以避免隐式引用

 #include <stdio.h> 

也许它会输出一个消息,但是这个应用程序立即终止,你无法看到它。

显示消息后,调用一个读取下一个按键的函数,以防止应用程序终止,直到您按下一个键。

包括stdio.h

 #include <stdio.h> 

并尝试刷新标准输出

 fflush(stdout); 

也许标准输出缓冲区没有被刷新。 还要记住,如果一个C程序被中断,可能有一些printf被调用成功,但是缓冲区没有被刷新,所以你什么都看不到。 如果您想确定printf已被正确调用,请手动刷新输出。

#include <stdio.h>缺失。 您应该收到警告消息,如: warning: incompatible implicit declaration of built-in function 'printf' 。 然后根据系统,你可以得到或不是你想要的输出。

C语言的规范指出,文本流中输出的最后一行可能在最后需要\n 。 该语言指出这个要求是实现定义的 。 这立即意味着在一般情况下,如果程序的行输出到文本流最后没有\n ,那么程序的行为就不会被定义。

行为只有在你谈论某个特定的实现时才会被定义。 有些实现可能会产生输出。 其他一些实现可能什么都不产生 而另一个实现可能会以其他方式表现。

对于你的具体实现(Linux上的GCC),我希望看到输出,即使没有结尾\n 。 也许有一些关于你的外壳/终端设置的方式,使其不可见。