Menulis ke file .txt?


149

Bagaimana saya bisa menulis sepotong teks ke dalam .txtfile? Saya telah menelusuri Google selama lebih dari 3-4 jam, tetapi tidak dapat menemukan cara melakukannya.

fwrite(); punya banyak argumen, dan saya tidak tahu bagaimana menggunakannya.

Apa fungsi termudah untuk digunakan ketika Anda hanya ingin menulis nama dan beberapa angka ke .txtfile?

Sunting: Menambahkan sepotong kode saya.

    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: Masalahnya bukan pada pencetakan (yang Anda lakukan benar), tetapi dengan membaca melalui scanf. Jika Anda membaca %s, Anda harus membaca ke dalam buffer yang cukup panjang, bukan satu karakter.
Kerrek SB

Jawaban:


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
Anda tahu Anda menulis π sebagai pi bukan 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

Nah, Anda harus terlebih dahulu mendapatkan buku bagus tentang C dan memahami bahasanya.

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
Itu kerja keras dibandingkan dengan menggunakan fprintf()atau fputs(). Terutama fprintf()karena beberapa angka juga harus ditulis.
Jonathan Leffler

6
Dan "c:\\test.txt"merupakan nama file yang tidak mungkin; pertanyaannya adalah tagged linux .
Keith Thompson

13
-1 OP meminta fungsi termudah untuk digunakan. Dan untuk menulis teks, tetapi Anda membuka file dalam mode biner. Dan itu praktik yang buruk untuk gagal melaporkan kesalahan terbuka.
Jim Balter
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.