Scrivi nel file .txt?


149

Come posso scrivere un piccolo pezzo di testo in un .txtfile? Sono stato su Google per oltre 3-4 ore, ma non riesco a scoprire come farlo.

fwrite(); ha così tanti argomenti e non so come usarlo.

Qual è la funzione più semplice da usare quando vuoi solo scrivere un nome e alcuni numeri in un .txtfile?

Modifica: aggiunto un pezzo del mio codice.

    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);


@ user1054396: il problema non è con la stampa (che hai capito bene), ma con la lettura tramite scanf. Se leggi %s, devi leggere in un buffer di lunghezza sufficiente, non un singolo carattere.
Kerrek SB,

Risposte:


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);

1
Sai che scrivi π come pi not py?
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);

-4

Bene, devi prima ottenere un buon libro su C e capire la lingua.

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);

2
È un duro lavoro rispetto all'utilizzo di fprintf()o fputs(). Soprattutto fprintf()perché anche alcuni numeri devono essere scritti.
Jonathan Leffler,

6
Ed "c:\\test.txt"è un nome file improbabile; la domanda è taggata linux .
Keith Thompson,

13
-1 L'OP ha richiesto la funzione più semplice da utilizzare. E per scrivere del testo, ma stai aprendo il file in modalità binaria. Ed è una cattiva pratica non riuscire a segnalare un errore aperto.
Jim Balter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.