2017-06-22 43 views
0

即時通訊使用終端在Mac上使用GNU C的新手。逐行讀取文件 - 文件在哪裏?

我用一個標準的一段代碼由文件裏逐行讀取和「file.txt的」指到一個文件。

我可以編譯源文件,但是當我執行的代碼無法找到file.txt文件。我已將該文件放在與源代碼和可執行文件相同的目錄中。我應該添加一個完整的目錄路徑。我想: -

「/Users/Swiss/documents/swdev/projects/code_ex/file.txt」

,但與相同的錯誤只是用「file.txt的」出現。

我得到的錯誤是: -

-bash:./read_file.lbl:沒有這樣的文件或目錄

和我假設它不能找到file.txt的 - 或者是它別的東西?

的代碼是: -

#include <stdio.h> 
int main (void) 
{ 
    static const char filename[] = "/Users/Swiss/documents/swdev/projects/code_ex/file.txt"; 
    FILE *file = fopen (filename, "r"); 
    if (file != NULL) 
    { 
     char line [ 128 ]; /* or other suitable maximum line size */ 
     while (fgets (line, sizeof line, file) != NULL) /* read a line */ 
     { 
     fputs (line, stdout); /* write the line */ 
     } 
     fclose (file); 
    } 
    else 
    { 
     perror (filename); /* why didn't the file open? */ 
    } 
    return 0; 
} 

任何幫助將受到熱烈的歡迎。

+1

你的代碼在哪裏?請[編輯]你的問題並提供[mcve]。 –

+1

請發佈您的代碼。 – chqrlie

+2

您發佈的錯誤消息說它找不到read_file.lbl,而不是file.txt。你究竟如何運行你的編譯程序? – dbush

回答

1

你的程序是正確的。如果源文件被稱爲read_file_lbl.c,運行以下命令來編譯它,並從終端運行:

$ gcc -Wall -o read_file_lbl read_file_lbl.c 
$ ./read_file_lbl 

如果用gcc read_file_lbl.c編譯程序,編譯器名稱的可執行a.out,所以試圖運行./read_file_lbl未按shell沒有找到這樣的可執行文件。也

注意gcc真是clang鏈接您的環境。你可以檢查:

$ gcc --version 
+0

chqrlie。它工作正常。我做錯了什麼? – SwissT

+0

謝謝大家。我需要在將來更清楚我的問題。謝謝你的幫助。 – SwissT

+0

@SwissT:沒問題,通過第一步學習走路......您可以通過點擊其分數下方的灰色複選標記來接受該答案。 – chqrlie