2017-06-22 10 views
0

Macでターミナルを使ってGNU Cを使うのに新しい。ファイルを1行ずつ読み込みます - ファイルはどこにありますか?

私は標準的なコードを使用して、ファイルを1行ずつ読み込み、 "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

投稿したエラーメッセージに、file.txtではなく、read_file.lblが見つかりません。コンパイルされたプログラムをどのくらい正確に実行していますか? – 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を実行しようとすると失敗しますそのような実行可能ファイルはシェルによって見つかりません。

gccは実際にはご使用の環境のclangへのリンクです。あなたはで確認できます:

$ gcc --version 
+0

chqrlie:私が使用read_file_lbl 実行する/起動を行います。c は、私が使用するプログラムをコンパイルするには。それはうまく動作します。私は何を間違っていたのですか? – SwissT

+0

ありがとうございます。私は将来私の質問についてより明確にする必要があります。助けていただきありがとうございます。 – SwissT

+0

@SwissT:問題はない、最初のステップを踏んで歩くことを学ぶ...あなたはスコアの下のグレーのチェックマークをクリックすることでこの回答を受け入れることができます。 – chqrlie

関連する問題