Écrire dans un fichier .txt?


149

Comment puis-je écrire un petit morceau de texte dans un .txtfichier? Je recherche sur Google depuis plus de 3 à 4 heures, mais je ne sais pas comment le faire.

fwrite(); a tellement d'arguments, et je ne sais pas comment m'en servir.

Quelle est la fonction la plus simple à utiliser lorsque vous souhaitez uniquement écrire un nom et quelques chiffres dans un .txtfichier?

Edit: Ajout d'un morceau de mon code.

    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: Le problème n'est pas avec l'impression (ce que vous avez bien), mais avec la lecture via scanf. Si vous lisez %s, vous devez lire dans un tampon de longueur suffisante, pas un seul caractère.
Kerrek SB

Réponses:


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
Vous savez que vous écrivez π comme pi pas 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

Eh bien, vous devez d'abord obtenir un bon livre sur C et comprendre la langue.

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
C'est un travail difficile par rapport à l'utilisation de fprintf()ou fputs(). D'autant fprintf()plus que quelques nombres doivent être écrits aussi.
Jonathan Leffler

6
Et "c:\\test.txt"est un nom de fichier improbable; la question est étiquetée linux .
Keith Thompson

13
-1 L'OP a demandé la fonction la plus simple à utiliser. Et pour écrire du texte, mais vous ouvrez le fichier en mode binaire. Et c'est une mauvaise pratique de ne pas signaler une erreur ouverte.
Jim Balter
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.