30/09/2018, 19:59

Lỗi vòng lặp vô hạn in ra toàn khoảng trống trên màn hình console

#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE *taptin = fopen("text.txt","r+");
    char c;
    if(taptin!=NULL) {
        fputs("hello",taptin);
        do {
            c=fgetc(taptin);
            printf("%c",c);
        } while (c!=EOF);

    } else
        printf("file not foud");
    fclose(taptin);
}

cụ thể nếu em dùng đoạn

do {
      c=fgetc(taptin);
      printf("%c",c);
 } while (c!=EOF);

thì vẫn viết được vào file text nhưng nó lại in ra màn hình console rất nhiều khoảng trống

giúp em với ạ tks!!@@

Ngô Doãn Tuấn viết 22:11 ngày 30/09/2018

Bạn ơi, Trước hết bạn sửa lại code đi nào
Cho vào Markdown nhé. Để mọi người dễ dàng hơn trong việc giúp đỡ nhé

Ngô Doãn Tuấn viết 22:13 ngày 30/09/2018

while (c!=EOF);

Bạn mở một file để ghi thì dùng điều kiện này hơi bất hợp lý vì làm sao kiểm tra được lúc nào thì kết thúc file

viết 22:13 ngày 30/09/2018

Nếu dùng do-while thì điều kiện sửa lại là c==EOF, dùng while mới c!=EOF

Tớ không giỏi Văn.... viết 22:16 ngày 30/09/2018

Tks mọi người mình mới nhập môn nên hơi gà

Tớ không giỏi Văn.... viết 22:13 ngày 30/09/2018

mình thử rồi nhưng nếu thây thành c==EOF thì chả in ra j cả

Tớ không giỏi Văn.... viết 22:03 ngày 30/09/2018

mà vừa mình kiểm tra lại thì đằng sau file text cũng có một khoảng trống khoảng 3 dòng

viết 22:14 ngày 30/09/2018

ok bạn, cho mình xin lỗi vì nhầm. điều kiện vòng do-while của bạn đúng chứ ko sai, mình bộp chộp sai chỗ này. bài của bạn khắc phục như sau

        fputs("hello",taptin);
        rewind(taptin);
        do {
            c=fgetc(taptin);
            if(c!=EOF)
                printf("%c",c);
        } while (c!=EOF);

bởi vì sau khi bạn fputs chuỗi “hello” lên taptin thì con trỏ taptin nó trỏ ngay sau kí tự ‘o’, bạn phải chuyển con trỏ về đầu file thì mới đọc được.

Tớ không giỏi Văn.... viết 22:09 ngày 30/09/2018

à tks bạn mình cũng đọc tài liệu liên quan đến cái “dấu nháy ảo” rồi mỗi tội k hiểu sao quên. lúc bạn ns đến mình mới nhớ

Bài liên quan
0