私はテキストファイルを開き、ワード数をカウントしてファイルを閉じるためにワードカウント関数を処理しています。 次に、同じファイルを再度開いて、配列内のワード数の制限値を持つ配列に格納します。Cプログラミング。テキストファイル操作のためのfopen fcloseの使用
ここで、1行目と16行目のようにfopenとfcloseを1回だけ使用すると、プログラムが機能しません。しかし、私がそれを開いて(1行目)、それを閉じて(10行目)、もう一度開くと(12行目)、2行目のプロセスでプログラムが動作します。 fopenは一度に1つのプロセスしか処理できないので、2回目のプロセスで再び開く必要がありますか?
1. fptrr = fopen(fname,"r"); // open the text file in read mode
2.
3. if (fptrr == NULL) {//if file name does not match
4. printf("Error: No such file or directory");
5. return -1;
6. }
7.
8. wordCount += countWords(fptrr); //run word count function and get the value of total words
9.
10. fclose(fptrr); // close the file
11.
12. fptrr = fopen(fname,"r");
13. for(int i=0;i<wordCount;i++){ // define size of loop equal to words in a file
14. fscanf(fptrr, "%s", fileArray[i]); //scan and store in array
15. }
16. fclose(fptrr);
「countWords()」の定義はどこですか? – Steve
初めてファイルを読み終えたら、 'fseek'を使ってファイルの先頭に戻り、再度処理する必要があります。 1つのプロセスだけを処理するfopenについてのあなたの質問は、私は非常に混乱していることがわかります。明確にできますか? – AntonH
[rewind](http://en.cppreference.com/w/c/io/rewind)を使用してください。 – BLUEPIXY