เขียนเป็นไฟล์. txt หรือไม่


149

ฉันจะเขียนข้อความเล็กน้อยลงใน.txtไฟล์ได้อย่างไร ฉันใช้ Google มานานกว่า 3-4 ชั่วโมง แต่ไม่สามารถหาวิธีทำได้

fwrite(); มีข้อโต้แย้งมากมายและฉันไม่รู้วิธีใช้

ฟังก์ชั่นที่ง่ายที่สุดในการใช้งานเมื่อคุณต้องการเขียนชื่อและตัวเลขสองสามตัวไปยัง.txtไฟล์คืออะไร?

แก้ไข: เพิ่มรหัสชิ้นหนึ่งของฉัน

    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: ปัญหาไม่ได้อยู่ที่มีการพิมพ์ (ซึ่งคุณได้รับจากขวา) แต่ด้วยการอ่านscanfผ่านทาง หากคุณอ่าน%sคุณต้องอ่านบัฟเฟอร์ที่มีความยาวเพียงพอไม่ใช่ตัวอักษรเดี่ยว
Kerrek SB

คำตอบ:


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
คุณรู้หรือไม่ว่าคุณเขียนπเป็น 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

ก่อนอื่นคุณต้องรับหนังสือดี ๆ เกี่ยวกับ C และเข้าใจภาษาก่อน

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
ที่ทำงานหนักเมื่อเทียบกับการใช้หรือfprintf() fputs()โดยเฉพาะอย่างยิ่งfprintf()เนื่องจากต้องเขียนตัวเลขสองสามตัวเช่นกัน
Jonathan Leffler

6
และ"c:\\test.txt"เป็นชื่อไฟล์ที่ไม่น่าจะเป็นไปได้ คำถามคือแท็กลินุกซ์
Keith Thompson

13
-1 OP ขอให้ฟังก์ชั่นที่ง่ายที่สุดที่จะใช้ และเพื่อเขียนข้อความ แต่คุณกำลังเปิดไฟล์ในโหมดไบนารี และเป็นวิธีปฏิบัติที่ไม่ดีในการรายงานข้อผิดพลาดแบบเปิด
Jim Balter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.