2016-02-21 33 views
0

因此,我正在编写一个C++程序,在程序中运行一个命令。每当我执行命令时,它会输出一个0作为结果。例如:C++系统命令输出0在结束

The random int I was thinking of was 130 

凡有只应该输出The random int I was thinking of was 13,但它仍然在最后输出0。这里是我的代码运行命令:

printf("Running file: %s\n", fileName); 
if(!exists(fileName)) 
{ 
    printf("That file does not exist.\n"); 
    return; 
} 
char buffer [7+strlen(fileName)]; 
int n; 
n = sprintf(buffer, "php -f %s", fileName); 
cout << system(buffer) << endl; 

我不认为这有什么用php命令,因为每当我型我到终端,php -f <filenamehere>它与The random int I was thinking of was 13输出出来。我想不出别的什么。

+0

不要''cout'的system'结果的选项? –

+0

'system()'返回0表示成功(非0表示失败)。你打印这个0. –

+0

@MatsPetersson我怎么会输出输出? – mttprvst13

回答

0

system函数返回执行的“结果”,对于成功为0,对于各种类型的失败(包括可执行文件本身的结果(如果适用))返回其他值。

您正在使用cout打印该值,这就是为什么它正在打印0 - 这就是为什么它正在打印0

你可能想要做这样的事情:

int result = system(...); 
if (result != 0) 
{ 
    cout << "system returned " << result << " which means it failed..." << endl; 
} 

注意,不管你运行使用system的输出会去stdout,它不会返回到应用程序本身,它只是打印到控制台[或任何地方stdout]。