如何在C ++中使用System(const char *)

时间:2012-03-02 03:52:52

标签: c

今天,当我编码时,遇到了一个问题..我的代码如下:

#include<stdlib.h>

void main()
{
    system("dir");
    getch();
}

问题:用户屏幕没什么..为什么?我的结果在哪里?

4 个答案:

答案 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 ++中的输出窗口