2016-04-18 58 views
3

我最近完成了一個程序,最終導致我的作業出錯。然而,我擁有所有正確的步驟,我不應該從命令行執行它,而是從IDE運行它(如果有意義的話)。寫入文件

我應該做的是進入文件「numbers.txt」並閱讀其中的整數(已有數字)。我想找到總和,產品和最高整數,並將它們輸出到名爲「stat.txt」的文本中。然而,我很困惑如何從我的編譯器中做到這一點。我有兩個文件在同一個目錄中,但是當我在編譯器中運行它時,它會顯示「無法讀取輸入文件」。我不知道如何使用編譯器來讀取文本文件,因爲我非常喜歡使用命令行。

這裏是我的代碼(我無法得到max以適應代碼)。

int main (int argc, char *argv[]) { 

    int number = 0; 
    int sum = 0; 
    int product = 1; 
    int max = 0; 

    FILE *input, *output; 
    input = fopen("numbers.txt", "r"); 
    output = fopen("stat.txt", "w"); 

    if (input == NULL) { 
     printf("Can not read the input file\n"); 
     exit(-1); 
    } 

    while ((fscanf(input, "%d", &number)) != EOF) { 
      sum = sum + number; 
      product = product * number; 
     if (number > max){ 
      max = number; 
     } 
    } 
    fprintf(output, "Sum : %d\n", sum); 
    fprintf(output,"Product : %d\n", product); 
    fprintf(output, "Largest: %d", max); 
    fclose(input); fclose(output); 
} 
+3

猜你應該運行* [集成開發環境](https://en.wikipedia.org/wiki/Integrated_Development_environment)*(IDE)中的代碼。 IDE應該有項目設置,允許您指定*工作目錄*和*命令行參數*。 – user3386109

+0

您的意思是從您的IDE運行它嗎?還是你的意思是從編譯器的調試器運行它?編譯器通過編譯源代碼並生成機器可讀代碼來運行。這就是它所要做的,並在必要時發佈錯誤和警告。 – alvits

+0

對不起,從IDE。我現在將編輯它。 – SoonPro

回答

3

你在用什麼IDE?您正在向fopen提供numbers.txt的相對路徑,它必須與可執行文件存在於相同的目錄中。

兩個地方numbers.txt地瞭解自己的IDE建立程序或具有相同的絕對路徑提供它的同一個文件夾「/home/username/Desktop/number.txt」

+0

我正在使用CLion,它們與我的.c程序所在的目錄位於同一目錄中。 – SoonPro

+0

好的,clion很棒。但是,與.c源文件在同一文件夾中的可執行文件是什麼?可能不會。 –

+0

你的意思是把它們放在我的ClionProjects所在的位置? – SoonPro