fprintf nicht beim schreiben in Datei
Ich versuche, verwenden Sie die folgende C-code zu drucken, die aus einer Vielzahl, die ich habe übergeben. Es sollte die Ausgabe den text in hexadezimal-format, eine auf jeder Zeile, und ich habe keine Probleme beim öffnen der Datei. Zuerst, als ich es schrieb, hatte ich keine Probleme mit der Arbeit, öffnete ich die Ausgabe-Datei und mein array da war. Ich habe die fileOutName
Parameters und nun kann ich es nicht mehr zu drucken, alles, was, die ich versucht habe, es zu ändern zurück, und ein paar andere Dinge, und nichts scheint zu funktionieren. Auch wenn ich Debuggen wie es scheint pOutfile
ist ein Ungültiger Zeiger, aber wie ich sagte, es immer noch schafft die Datei, die es einfach nicht nichts schreiben. Jede Hilfe würde geschätzt werden. Dank
printoutput(int output[], char * fileOutName){
int i = 0;
FILE * pOutfile;
pOutfile = fopen( fileOutName, "w" );
while(output[i] != 0){
fprintf( pOutfile, "0x%0.4X\n", output[i] );
i++;
}
}
fflush(pOutfile);
Überprüfen Sie auch die Rückkehr von
fopen
. Dies ist einer der API-Fällen, in denen es fast zwingend, um Fehler zu behandeln. Sie sind sehr Häufig (keine Rechte schreiben, zum Beispiel, fehlenden Medien, Datei bereits vorhanden, aber gesperrt, Magische mit dem Namen, darf nicht verwendet werden, die von apps (/proc oder PRN in windows zum Beispiel)).InformationsquelleAutor farnett | 2012-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Immer nach sich selbst bereinigen. Ihnen fehlt ein
fclose(pOutfile)
.InformationsquelleAutor Kevin
Diese Zeile
immer-Formate der gleichen Nummer -
5
. Es sollte wohl seinInformationsquelleAutor dasblinkenlight
Sind Sie zählen auf das element über die Grenzen des Arrays auf 0 sein, was nicht der Fall sein, es sei denn, Sie sind explizit festlegen. Wenn Sie sind, das ist okay. In der Regel, übergeben von arrays zusammen mit Ihrer Größe; das ist sicherer, einfacher zu Lesen und mehr tragbar.
Ich auch SEHR empfehlen, sich mit dem Prä-Inkrement-operator anstelle von post-Inkrement. In Situationen wie dieser, ist es wahrscheinlich nicht machen einen Unterschied, aber für große Eingänge oder komplexe Typen, kann es zu reduzieren die Ausführungszeit. Also ++i statt i++.
InformationsquelleAutor Andrew W Carson