@ user1054396: Das Problem liegt nicht beim Drucken (was Sie richtig verstanden haben), sondern beim lesen über scanf. Wenn Sie lesen %smüssen Sie in einen ausreichend langen Puffer einlesen, nicht ein einzelnes Zeichen.
– Kerrek SB
20. Juli 2012 um 11:48 Uhr
FILE *f = fopen("file.txt", "w");
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
/* print some text */
const char *text = "Write this to the file";
fprintf(f, "Some text: %s\n", text);
/* print integers and floats */
int i = 1;
float pi= 3.1415927;
fprintf(f, "Integer: %d, float: %f\n", i, pi);
/* printing single characters */
char c="A";
fprintf(f, "A character: %c\n", c);
fclose(f);
cppcoder
FILE *fp;
char* str = "string";
int x = 10;
fp=fopen("test.txt", "w");
if(fp == NULL)
exit(-1);
fprintf(fp, "This is a string which is written to a file\n");
fprintf(fp, "The string has %d words and keyword %s\n", x, str);
fclose(fp);
Jeeva
Nun, Sie müssen sich zuerst ein gutes Buch über C besorgen und die Sprache verstehen.
Das ist harte Arbeit im Vergleich zur Nutzung fprintf() oder fputs(). Besonders fprintf() da auch ein paar Zahlen geschrieben werden müssen.
– Jonathan Leffler
20. Juli 2012 um 6:38 Uhr
Und "c:\\test.txt" ist ein unwahrscheinlicher Dateiname; Die Frage ist mit Linux markiert.
– Keith Thompson
20. Juli 2012 um 6:45 Uhr
-1 Das OP hat nach der am einfachsten zu verwendenden Funktion gefragt. Und um Text zu schreiben, aber Sie öffnen die Datei im Binärmodus. Und es ist schlechte Angewohnheit, einen offenen Fehler nicht zu melden.
@ user1054396: Das Problem liegt nicht beim Drucken (was Sie richtig verstanden haben), sondern beim lesen über
scanf
. Wenn Sie lesen%s
müssen Sie in einen ausreichend langen Puffer einlesen, nicht ein einzelnes Zeichen.– Kerrek SB
20. Juli 2012 um 11:48 Uhr