Ghi vào tập tin .txt?


149

Làm thế nào tôi có thể viết một đoạn văn bản nhỏ vào một .txttập tin? Tôi đã làm việc trong hơn 3-4 giờ, nhưng không thể tìm ra cách để làm điều đó.

fwrite(); có quá nhiều đối số và tôi không biết cách sử dụng nó.

Chức năng nào dễ sử dụng nhất khi bạn chỉ muốn viết tên và một vài số vào một .txttệp?

Chỉnh sửa: Đã thêm một đoạn mã của tôi.

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


@ user1054394: Vấn đề không nằm ở việc in ấn (mà bạn đã đúng), nhưng với việc đọc qua scanf. Nếu bạn đọc %s, bạn phải đọc vào một bộ đệm có độ dài đủ, không phải là một char duy nhất.
Kerrek SB

Câu trả lời:


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
Bạn biết bạn viết π như pi không 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

Chà, trước tiên bạn cần có một cuốn sách hay về C và hiểu ngôn ngữ.

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
Đó là công việc khó khăn so với việc sử dụng fprintf()hoặc fputs(). Đặc biệt là fprintf()vì một vài số phải được viết quá.
Jonathan Leffler

6
"c:\\test.txt"là một tên tập tin không thể; Câu hỏi được gắn thẻ linux .
Keith Thompson

13
-1 OP yêu cầu chức năng dễ sử dụng nhất. Và để viết văn bản, nhưng bạn đang mở tệp ở chế độ nhị phân. Và đó là thực tế kém để không báo cáo một lỗi mở.
Jim Balter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.