今天,当我编码时,遇到了一个问题..我的代码如下:
#include<stdlib.h>
void main()
{
system("dir");
getch();
}
问题:用户屏幕没什么..为什么?我的结果在哪里?
答案 0 :(得分:2)
如果在使用system
时想要输出,至少要在应用程序中读取的内容,则需要输出输出:
system("dir > /tmp/output.txt");
FILE *f = fopen("/tmp/output.txt", "r");
char text[1024]; // max sizeof of 1 kb, any more and I'd consider using `malloc()` instead.
fread(text, 1, 1024, f);
printf("%s\n", text);
fclose(f);
答案 1 :(得分:1)
您的计划中存在一些问题,至少已经提到过其中一个问题。
void main()
应为int main(void)
。
我记得,在getch
中声明了Windows / DOS <conio.h>
函数;你应该有一个#include
指令。请注意,<conio.h>
和getch
都是非标准的。
由于main
返回int
,您应该返回int
结果。
但这些问题都没有解释你所看到的问题。
通过以下更改:
#include <stdlib.h>
#include <conio.h>
int main(void)
{
system("dir");
getch();
return 0;
}
这个应该工作;它应该显示程序运行的目录列表(由TC确定;我不知道详细信息)。
程序可能在一个空目录中运行,这意味着dir
命令不会显示任何文件,但它仍然会产生一些输出。
尝试发表评论system()
并添加printf
来电(请注意添加的#include <stdio.h>
):
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
printf("Hello, world\n");
getch();
return 0;
}
这应打开一个控制台窗口,在其中打印"Hello, world"
,然后等待您输入 Enter 。
如果您仍然没有看到任何输出(没有控制台窗口或没有任何内容的控制台窗口),那么您遇到的问题与system()
调用无关。最有可能的问题与你使用Turbo C的方式有关(我认为这就是“TC”的意思)。
答案 2 :(得分:0)
每个C程序中的main
函数都应返回int
您要返回的void
将void
更改为int
:
#include<stdlib.h>
int main()
{
system("dir");
getch();
}
当我测试时,dir
命令在我的控制台中运行并打印到标准输出。
答案 3 :(得分:0)
可能是他直接在Turbo C IDE中运行程序,因此他的输出不可见。如果他直接从cmd行运行程序就可以了。我记得你需要运行Alt-F5或其他组合才能看到Turbo C ++中的输出窗口