In TXT-Datei schreiben?

149

Wie kann ich ein kleines Stück Text in eine .txtDatei schreiben ? Ich habe über 3-4 Stunden gegoogelt, kann aber nicht herausfinden, wie es geht.

fwrite(); hat so viele Argumente, und ich weiß nicht, wie ich es verwenden soll.

Was ist die einfachste Funktion, wenn Sie nur einen Namen und einige Zahlen in eine .txtDatei schreiben möchten ?

Bearbeiten: Ein Teil meines Codes wurde hinzugefügt.

    char name;
    int  number;
    FILE *f;
    f = fopen("contacts.pcl", "a");

    printf("\nNew contact name: ");
    scanf("%s", &name);
    printf("New contact number: ");
    scanf("%i", &number);


    fprintf(f, "%c\n[ %d ]\n\n", name, number);
    fclose(f);
Stian Olsen
quelle
@ 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 Puffer mit ausreichender Länge lesen, nicht in ein einzelnes Zeichen.
Kerrek SB

Antworten:

268
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 py = 3.1415927;
fprintf(f, "Integer: %d, float: %f\n", i, py);

/* printing single chatacters */
char c = 'A';
fprintf(f, "A character: %c\n", c);

fclose(f);

quelle
1
Sie wissen, dass Sie π als pi nicht py schreiben?
Wouterr
21
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);
cppcoder
quelle
-4

Nun, Sie müssen zuerst ein gutes Buch über C bekommen und die Sprache verstehen.

FILE *fp;
fp = fopen("c:\\test.txt", "wb");
if(fp == null)
   return;
char x[10]="ABCDEFGHIJ";
fwrite(x, sizeof(x[0]), sizeof(x)/sizeof(x[0]), fp);
fclose(fp);
Jeeva
quelle
2
Das ist harte Arbeit im Vergleich zu fprintf()oder fputs(). Zumal auch fprintf()ein paar Zahlen geschrieben werden müssen.
Jonathan Leffler
6
Und "c:\\test.txt"ist ein unwahrscheinlicher Dateiname; Die Frage ist mit Linux markiert .
Keith Thompson
13
-1 Das OP hat nach der am einfachsten zu verwendenden Funktion gefragt. Und um Text zu schreiben, öffnen Sie die Datei im Binärmodus. Und es ist eine schlechte Praxis, einen offenen Fehler nicht zu melden.
Jim Balter