Um eine formatierte Datei zu erstellen, möchte ich fprintf
verwenden. Es muss char*
Parameter erhalten, aber ich habe mehrere String-Variablen. Wie kann ich fprintf
verwenden?fprintf mit String-Argument
Antwort
Die grundlegende Verwendung von fprintf
mit Streichern sieht wie folgt aus:
char *str1, *str2, *str3;
FILE *f;
// ...
f = fopen("abc.txt", "w");
fprintf(f, "%s, %s\n", str1, str2);
fprintf(f, "more: %s\n", str3);
fclose(f);
Sie mehrere Strings durch die Verwendung mehrerer %s
Formatbezeich hinzufügen können, und Sie können wiederholte Anrufe fprintf
verwenden, um die Datei schrittweise zu schreiben.
Wenn Sie C++ haben std::string
Objekte können Sie ihre c_str()
Methode verwenden, um eine const char*
geeignet zu bekommen mit fprintf
zu verwenden:
std::string str("abc");
fprintf(f, "%s\n", str.c_str());
Vielen Dank. Es klappt. – aryan
fprintf mit mehreren Strings ist ziemlich einfach, wenn es das ist, was Sie nach, z.B.
const char* charString1 = "This";
const char* charString2 = "is a";
const char* charString3 = "test";
fprintf(fileHandle, "%s, %s, %s", charString1, charString2, charString3);
Ich habe etwas wie dieses: ... string St1, St2; ... ifstream In ("Text.txt"); In >> St1 >> St2; ... , dass St1 und St2 initialisiert werden, indem sie von einer Datei mit der Funktion ifstream() gelesen werden. Jetzt möchte ich sie in einer anderen Datei mit der Funktion fprintf() schreiben. fprintf ("% s% s", St1, St2); Aber ich denke, fprint bekommen char * nicht Zeichenfolge. – aryan
fprintf arbeitet analog zu printf im Formatbezeichner, können Sie so viele% s erwähnen, wie Sie die entsprechende Anzahl von String-Argumenten wollen und geben. Wenn Sie eine detailliertere Antwort wünschen, senden Sie bitte Ihren Code.
- 1. C fprintf mit Farben
- 2. Probleme fprintf
- 3. Mit fscanf und fprintf zusammen in C
- 4. fprintf verursacht Kommas in Matlab
- 5. fprintf schreibt nicht in Datei
- 6. Einliner für fopen, fprintf, fclose?
- 7. Kompilierungsfehler: Fprintf wirft Parse Fehler
- 8. Matlab ShortEng Zahlenformat über sprintf() und fprintf()?
- 9. Redirect fprintf Ausgabe an einen Port
- 10. Unterschied zwischen fprintf, printf und sprintf?
- 11. fprintf für große Matrix in Matlab
- 12. Wie drucke ich \\ in C? (fprintf)
- 13. Wie kann fprintf in Linux blockieren?
- 14. Fehler bei Verwendung ==> fprintf (In Matlab)
- 15. warum fputs und fprintf umgekehrte Reihenfolge
- 16. Ist fprintf thread unter OS X sicher?
- 17. lesen fprintf, während das Programm läuft
- 18. Sind fscanf und fprintf in C gepuffert?
- 19. linux/glibc. Kann ich fprintf im Signalhandler verwenden?
- 20. C++ fprintf über viele Funktionen zu einer einzigen Textdatei
- 21. printf(), fprintf(), wprintf() und NSlog() drucken nicht auf XCode
- 22. Wann sollte ich perror ("...") und fprintf (stderr, "...") verwenden?
- 23. C: Kann fprintf nicht zum Ausdrucken in Ausgabedatei
- 24. Wie kann ich fprintf verwenden und in eine Pipe schreiben?
- 25. Ist die Funktion fprintf() für ihre Fehleranzeige errno gesetzt?
- 26. Was ist der Aufruf von "getchar()" nach dem Drucken eines Fehlers mit "fprintf"?
- 27. Wie verwenden Sie zusammengesetzte Literale zu `fprintf()` multiple formatierte Zahlen mit beliebigen Basen?
- 28. FileSystemWatcher löst keine Ereignisse aus, wenn eine Datei mit fprintf oder printf geschrieben wurde
- 29. Wie drucke ich mit fprintf/printf einen Gedankenstrich oder einen Punkt?
- 30. Einrückung (und Umbruch-Einrückung) von Debug-Strings ausgegeben von printf()/fprintf() in C-Programm
Können Sie einen Beispielcode veröffentlichen, der uns zeigt, was die Eingabe ist und was die erwartete Ausgabe ist? – Naveen
Ich habe etwas wie dieses: ... string St1, St2; ... ifstream In ("Text.txt"); In >> St1 >> St2; ... dass St1 und St2 initialisiert werden, indem von einer Datei von Ifstream() - Funktion gelesen wird. Jetzt möchte ich sie in einer anderen Datei mit der Funktion fprintf() schreiben. fprintf ("% s% s", St1, St2); Aber ich denke, fprint bekommen char * nicht Zeichenfolge. – aryan
Das erste Argument für fprintf sollte eine FILE * sein, kein char *. In C gibt es keine "Zeichenfolge", nur "char *". Sind Sie sicher, dass Sie diese Frage nicht mit "C++" und nicht mit "C" versehen wollten? –