Mình tạo 1 file client.dat với code 1 để lưu 2 account nhg khi muốn thoát bằng EOF - crtl + z thì không được phải nhấn đến lần thứ 3 thì mới dừng.
Sau sang code 2 đọc từ file client.dat ra thì lỗi không dừng, chương trình in liên tục account thứ 2.
Mong các cao nhân chỉ điểm
Code 1:
#include <stdio.h>
#include "pch.h"
int main(void)
{
char name[30];
int account;
double balance;
FILE *cfPtr;
if ( (cfPtr = fopen("client.dat","w") ) == NULL)
{
puts("Cant open file.");
}
else
{
printf("%-10s%-13s%7s\n", "account", "name", "balance" );
scanf( "%d%29s%lf", &account, name, &balance);
}
while ( !feof( stdin ) )
{
fprintf( cfPtr, "%d %s %.2f\n", account, name, balance );
scanf( "%d%29s%lf", &account, name, &balance );
}
fclose( cfPtr );
system("pause");
}
Code 2:
#include <stdio.h>
int main(void)
{
char name[30];
int account;
double balance;
FILE *cfPtr;
if ((cfPtr = fopen("client.dat", "r")) == NULL)
{
puts("Cant open file.");
}
else
{
printf("%-10s%-13s%7s\n", "account", "name", "balance");
fscanf(cfPtr, "%d%29s%lf", &account, name, &balance);
}
while (!feof(stdin))
{
printf("%-10d%-13s%7.2f\n", account, name, balance);
fscanf(cfPtr, "%d%29s%lf", &account, name, &balance);
}
fclose(cfPtr);
system("pause");
}