30/09/2018, 16:19
Làm sao để sửa lỗi không đọc được file INPUT
Mình dùng codeblock
để code, mình tạo file INPUT
trong ổ đĩa D.Debug thì thấy con trỏ file
vẫn nhận giá trị NULL tức là mở file INPUT
không thành công rồi.Nhờ mọi kiểm tra zùm mình với.
#include<stdio.h>
int doi_coso2(int soNguyen);
int kiemtra_doixung(int soNguyen);
void in(int soLan_test,FILE *file,FILE *file1);
int main(){
FILE *file,*file1;
int soLan_test=0;
file=fopen("D:INPUT","rt");
file1=fopen("D:OUTPUT","wt");
fscanf(file,"%d",&soLan_test);
in(soLan_test,file,file1);
fclose(file);
fclose(file1);
return 0;
}
int doi_coso2(int soNguyen){
int dem=0,mang_tam[100]={},tam=0,co_so2=0;
do{
tam=soNguyen;
soNguyen=soNguyen/2;
mang_tam[dem]=tam-soNguyen*2;
if(soNguyen!=0)
dem++;
}while(soNguyen!=0);
for(int i=0;i<=dem;i++){
co_so2=co_so2*10+mang_tam[i];
}
return co_so2;
}
int kiemtra_doixung(int soNguyen){
int doi_xung=0,tam1=soNguyen,tam2=0;
while(tam1!=0){
tam2=tam1%10;
doi_xung=doi_xung*10+tam2;
tam1=tam1/10;
}
if(doi_xung==soNguyen)
return 1;
else
return 0;
}
void in(int soLan_test,FILE *file,FILE *file1){
int tam=0,soLan_in=0,so_goc=0;
for(int i=1;i<=soLan_test;i++){
fscanf(file,"%d",&soLan_in);
fscanf(file,"%d",&so_goc);
for(int j=so_goc+1,dem=1;dem<=soLan_in;j++){
tam=doi_coso2(j);
if(kiemtra_doixung(tam)==1){
fprintf(file1,"%d ",j);
dem++;
}
}
fprintf(file1,"
");
}
Nội dung file INPUT:
2 // số lần test.
3 25 //3: số Lần in,25:số gốc
2 1 // 2:số lần in, 1:số gốc.
Bài liên quan
Hình như tên file của bạn thiếu cái đuôi.
Bạn cũng nên có dòng kiểm tra có mở được file hay không sau khi open để dễ nhận biết lỗi.
Thêm 1 backslash trước nưa thì mới tạo đường dẫn đúng: “D:\\INPUT” . Chú ý tên file có đuôi .txt không nữa