Wie kann ich eine Datei verschieben Zeiger auf die nächste Zeile in einer Datei?
Ich bin versucht zu schreiben, eine Funktion, liest eine Zeile, speichert jedes Zeichen in ein array manipuliert, dass die Zeichen-array, druckt die Ergebnisse auf eine andere Datei, dann geht es weiter zu der nächsten Zeile in der Datei.
Einige Beispiel für die Eingabe/Ausgabe würde wie folgt Aussehen (der Zweck des Programms ist das finden der Ableitung aber, dass ein Teil der code ist in Ordnung.):
INPUT:
x
4x^4
91
sinx
OUTPUT:
1
16x^3
0
cosx
Die Funktion, die ich bisher geschrieben haben:
int main(){
FILE *inptr = fopen("functions.txt", "r");
FILE *outptr = fopen( "derive.txt", "w");
if(inptr)
derive(inptr,outptr);
return 0;
}
void derive(FILE *inptr, FILE *outptr){
int i;
char in = '0';
char array[MAX];
while((in = fgetc(inptr)) != EOF){
for(i = 0; in != '\n'; i++){
fscanf(inptr, "%c", &in);
array[i] = in;
}
manipulate(array, outptr); //Function that finds the derivative and prints to output file
}
}
Meine Frage ist: Wie kann ich die verschieben den Datei-Zeiger inptr in die nächste Zeile?
Was ist falsch mit
fgets
?char line[12345]; while (fgets(inptr, line, sizeof line)) /* deal with line */;
InformationsquelleAutor jkm | 2015-05-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier brauchen Sie nicht zu erhöhen
inptr
denn alsfscanf()
in der for-Schleife auszuführen, seinen Mauszeiger hält Inkrementieren, so dass in der nächsten while-Schleife werden Sie bei der nächsten Zeile.Im obigen code fehlt 1. Zeichen jeder Zeile.,
Während Sie gelesen haben, ein Zeichen aber, die Sie nicht verwenden, und in der nächsten for-Schleife wieder readding Charakter.
InformationsquelleAutor Jeegar Patel
InformationsquelleAutor farrouk
Verwenden Sie die Funktion
fgets()
zum Lesen aus einer Datei Zeile für Zeile.InformationsquelleAutor Anthony Ude