2014-01-14 63 views
1

我目前正在關注由youbube上的newboston創建的教程。我並不是一字不差,但足夠接近。system()函數不工作C++

我簡單的程序:

#include <iostream> 
#include <string.h> /* memset */ 
#include <unistd.h> /* close */ 
#include <stdio.h> 
#include <stdlib.h> 
#include <cstdlib> 

int main(){ 
    using namespace std; 
    cout << "Those who wander too far off the path of reality. Will be plunged into total Madness." << endl; 
    cout << "                       - BinKill-Ethical" << endl; 
    system("cls"); 
    return 0; 

} 

這是我在C首先++編程,我已經創建。我幾乎不知道,但我無法讓system()函數工作。

輸出:enter image description here

所有除#include <iostream>來自其他計算器職位的建議,試圖得到這個工作。沒有工作。如果有問題,我正在使用G ++進行編譯。

+2

就C++而言,「系統」不保證任何結果。你沒有'cls'命令(Windows默認是這樣的,這就是本教程的用途)。 – chris

+3

使用'system(「cmd/c cls」);' –

+2

@CaptainObvlious,不是Windows,通過''判斷。 – chris

回答

2

system函數用於啓動存在於目標平臺上的可執行文件。在Windows平臺上,cls命令內置於外殼中,並不作爲獨立可執行文件存在。這使得僅使用system("cls")就無法清除屏幕,因爲名爲「cls」的可執行文件不是Windows的標準部分。您仍然可以在默認安裝的Windows上清除屏幕,但必須通過啓動命令shell來完成。

system("cmd /c cls"); 

/c選項指示殼(cmd)來執行命令cls,然後退出。

如果你正在爲Windows編寫你的程序,我建議看看console API。如果你正在編寫你的應用程序的多個平臺,我建議看看ncurses。兩者都將允許您以更加程序化的方式清除屏幕,而不是僅使用system