Ich öffne eine Textdatei und verarbeite die Wortzählfunktion, um Wörter zu zählen und eine Datei zu schließen. Als nächstes öffne ich die gleiche Datei erneut und speichern Sie es im Array mit Grenzwert für Wortzahl in einem Array.C Programmierung. Mit fopen fclose für Textdateioperationen
Hier, wenn ich fopen und fclose nur einmal wie in Zeile 1 und 16 verwenden, funktioniert mein Programm nicht. Aber wenn ich es öffne (Zeile 1) verarbeite es dann schließe es (Zeile 10) und öffne es wieder (Zeile 12) für den zweiten Prozess, mein Programm funktioniert. Bedeutet es, dass fopen immer nur einen Prozess verarbeiten kann und ich ihn für den zweiten Prozess wieder öffnen muss?
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);
Wo ist die Definition von 'countWords()'? – Steve
Nachdem Sie die Datei das erste Mal durchgelesen haben, sollten Sie 'fseek' verwenden, um zum Anfang der Datei zurückzukehren, um sie erneut zu verarbeiten. Deine Frage zu fopen, nur einen Prozess zu bearbeiten, finde ich sehr verwirrend. Könnten Sie das klären? – AntonH
Oder Verwenden Sie [Zurückspulen] (http://en.cppreference.com/w/c/io/rewind). – BLUEPIXY