#include "stdafx.h"
#include "string.h"
#include "stdio.h"
void CharReadWrite(FILE *fin);
FILE *fptr2;
int _tmain(int argc, _TCHAR* argv[])
{
char filename[]="ReadMe.txt";
if (fopen_s(&fptr2, filename, "r") != 0)
printf("File stream %s was not opened\n", filename);
else
printf("The file %s was opened\n", filename);
CharReadWrite(fptr2);
fclose(fptr2);
return 0;
}
void CharReadWrite(FILE *fin){
int c;
while ((c=fgetc(fin)) !=EOF) {
putchar(c);}
}
0
A
Antwort
3
Sie öffnen ReadMe.txt zum Schreiben:
fopen_s(&fptr2, filename, "w")
aber dann ist es zu CharReadWrite
vorbei:
CharReadWrite(fptr2);
die von ihm zu lesen versucht:
c=fgetc(fin)
Wollten Sie es zum Lesen öffnen, indem Sie "r"
anübergeben?
Sie fahren auch fort und rufen CharReadWrite
auf, wenn das Öffnen von ReadMe.txt fehlschlägt.
1
Ein Problem ist, dass Sie versuchen, zu lesen (und dann schließen) fptr2
, auch wenn Sie es nicht öffnen konnten.
Versuchen:
#include "stdafx.h"
#include "string.h"
#include "stdio.h"
void CharReadWrite(FILE *fin);
FILE *fptr2;
int _tmain(int argc, _TCHAR* argv[])
{
char filename[]="ReadMe.txt";
if (fopen_s(&fptr2, filename, "w") != 0)
{
printf("File stream %s was not opened\n", filename);
}
else
{
printf("The file %s was opened\n", filename);
CharReadWrite(fptr2);
fclose(fptr2);
}
return 0;
}
0
Das Problem ist, diese Zeile:
if (fopen_s (& fptr2, Dateiname, "w") = 0!)
Wenn Sie passieren die ‚w 'flag, "Create an empty file for writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file."
Verwenden Sie stattdessen das Flag "r +".
0
Sie öffnen Datei zum Schreiben und versuchen, daraus zu lesen (fgetc) ...
Verwandte Themen
- 1. Warum habe ich diesen Artikel bei meinen Hausaufgaben falsch verstanden?
- 2. ZoneDateTime.getTimeZone() ist nicht was ich eingestellt habe
- 3. Inhaltstyp falsch eingestellt in javax.mail.Part
- 4. ResourceManager beim Speichern falsch eingestellt
- 5. ScrollBar-Wert ist falsch eingestellt
- 6. Ich habe meinen eigenen Logger in angular2
- 7. Geocoding .... habe ich etwas falsch gemacht?
- 8. Python - Kivy, habe ich das falsch strukturiert?
- 9. android - Gibt imageView.getDrawable zurück, was ich mit imageView.setImageResource eingestellt habe?
- 10. Bewegt Fread den Dateizeiger?
- 11. Fehler C2064 - Ich weiß nicht, was ich falsch gemacht habe
- 12. Mache ich etwas falsch mit meinen Bestellungen von Operationen?
- 13. Was mache ich falsch mit meinen Thread Pools?
- 14. Ich habe meinen HTML-Code in E-Mail geschrieben
- 15. EGit funktioniert nicht, nachdem ich meinen Arbeitsbereich gewechselt habe
- 16. Projekt Euler: Größtes Palindrom (Python). Was habe ich falsch gemacht?
- 17. Habe ich JSON_decode oder PHP-Inhalte falsch verwendet?
- 18. OleDB gibt nur DbNull zurück, was habe ich falsch gemacht?
- 19. Was ist falsch mit diesem Code ich habe: verursacht java.lang.NullPointerException
- 20. ModelState.IsValid ist falsch, wenn ich einen nullbaren Parameter habe
- 21. Warum sagt EPPlus mir, dass ich "Farbe nicht einstellen kann, wenn Mustertyp nicht eingestellt ist", wenn ich PatternType eingestellt habe?
- 22. Kompilieren Fehler in meinem Parser, denke ich habe meine Eingabedatei falsch, aber unsicher, was falsch
- 23. Ist die Standardkonfiguration von re auf Macbooks falsch? Oder habe ich einfach etwas falsch verstanden?
- 24. Ich habe
- 25. Excel Auto Filter Kriterien Wert wird falsch eingestellt?
- 26. kann nicht eingestellt Block-no-leer falsch in stylelint
- 27. Hibernate Frühling kodieren charater falsch eingestellt [UTF-8]
- 28. E-Mail 'von' Feld wurde falsch eingestellt mit phpmailer 5.2
- 29. Warum kann ich mein Bild nicht zentrieren, obwohl ich img als Blockelement eingestellt habe?
- 30. Wie ignoriere ich Rückgabewert anders als 0, wenn ich -e eingestellt habe?
Was ist Ihre Frage? Welchen Fehler bekommst du? – CookieOfFortune
(c = fgetc (fin)! = EOF) hat eine Klammer falsch platziert. Sollte sein (c = fgetc (fin))! = EOF. – Stephan202