30/09/2018, 18:53

Ai xem hộ em tại sao lại lỗi như vậy được không ạ!

#include<conio.h>
#include<stdio.h>
#include<math.h>
int KhongCach(int xa, int ya, int xb, int yb);
int main()
{
    int xa,ya,xb,yb,xc,yc;
    int toadodiem[5]={0};
    FILE *toado= NULL;
    toado = fopen("D:\folder\TOADO.txt","r");
    if (toado!= NULL)
    {
        printf("
 Nhap toa do diem A");
        printf("
 x:");
        scanf("%d",&xa);
        printf("
 y:");
        scanf("%d",&ya);
        fprintf(toado,"%d %d",xa,ya);
        printf("
 Nhap toa do diem B");
        printf("
 x:");
        scanf("%d",&xb);
        printf("
 y:");
        scanf("%d",&yb);
        fprintf(toado,"%d %d",xb,yb);
        printf("
 Nhap toa do diem C");
        printf("
 x:");
        scanf("%d",&xc);
        printf("
 y:");
        scanf("%d",&yc);
        fprintf(toado,"%d %d",xc,yc);
        fscanf(toado,"%d %d %d %d %d %d",&toadodiem[0],&toadodiem[1],&toadodiem[2],&toadodiem[3],&toadodiem[4],&toadodiem[5]);
        printf("
 Toa do diem A la:[%d] [%d]",toadodiem[0],toadodiem[1]);
        printf("
 Toa do diem B la:[%d] [%d]",toadodiem[2],toadodiem[3]);
        printf("
 Toa do diem C la:[%d] [%d]",toadodiem[4],toadodiem[5]);
        if (xa==xb&&ya==yb)
            printf("
 Day khong phai la tam giac.");
        else
        {
            printf("
 do dai canh AB la");
            KhongCach(xa,ya,xb,yb);
            printf("
 do dai canh BC la");
            KhongCach(xb,yb,xc,yc);
            printf("
 do dai canh CA la");
            KhongCach(xc,yc,xa,ya);
        }
        fclose(toado);
    }
    else
    {
        printf("Khong the mo tep tin TOADO.txt");
    }
    return 0;
}
int KhongCach(int xa, int ya, int xb, int yb)
{
    float dodai=0;
    dodai=(sqrt((xb-xa)*(xb-xa)+(yb-ya)*(yb-ya)));
    printf("%7.3f",dodai);
}

Ở cái dòng em muốn hiện số từ trong tệp ra ngoài màn hình thì nó chỉ hiện mấy số thôi. Ai chỉ em cách giải quyết với ạ.

*grab popcorn* viết 21:09 ngày 30/09/2018

Bạn mở file dùng chỉ để đọc nên hàm fprintf sẽ ko in gì vô file đâu bạn
Muốn đc vậy thì bạn chỉ cần thêm dấu + vô thành “r+” là đc
Và đến khi đọc, thì bạn phải dùng hàm rewind(toado) để cho con trỏ trỏ về đầu file. Nếu không CT sẽ đọc tiếp dữ liệu từ vị trí con trỏ hiện tại và làm sai thông tin nhé
À mà nhớ sủa fprintf("%d %d",x,y) thành fprintf("%d %d ",x,y) thêm dấu cách vào, nếu ko nó bị viết liền lại thành
1 23 45 6 (nếu như dữ liệu vào là 1 2 3 4 5 6 cho 3 điểm trên)

Bài liên quan
0