while (!feof(f))
{
fscanf(f,"%s",&A[i]);
i++;
}
khi dịch đến đoạn code trên chương trình báo lỗi stray’`’ in program .mình mới học về tệp,ai giúp mình với
while (!feof(f))
{
fscanf(f,"%s",&A[i]);
i++;
}
khi dịch đến đoạn code trên chương trình báo lỗi stray’`’ in program .mình mới học về tệp,ai giúp mình với
@Htc cho thêm code đi, code này chắc ngắn? Copy toàn bộ câu báo lỗi luôn.
Đừng copy 1 đoạn code hoặc 1 đoạn lỗi. Nếu có thể hay post toàn bộ nhé
#include conio.h
#include iostream
#include fstream
#include string
#include stdio.h
int main()
{
FILE*f= fopen("input.txt","r");
if(!f)
{
printf("not find file \n");
return 0;
}
int i=0;
char A[100000];
` while (!feof(f))
{
fscanf(f,"%s",&A[i]);
i++;
}
fclose(f);
FILE*f1=fopen("output.txt","w");
for (int j=0;j<i;j++)
fprintf(f1,"%s",A[j]);
fclose(f1);
}
toàn bộ đây bạn ơi
Copy toàn bộ lộ ra cái lỗi ngay, có cái dấu ` ở ngay phía trước while
, bỏ dấu đó đi.
Nhưng đó cũng chưa hết lỗi
Các thư viện này vừa không cần thiết, vừa sai cấu trúc.
#include conio.h
#include iostream
#include fstream
#include string
#include stdio.h
Chỉ cần thế này là đủ
#include <stdio.h>
Câu lệnh này cũng sai
fprintf(f1,"%s",A[j]);
Không thể dùng %s cho A[j] được. Trong trường hợp này phải dùng
fprintf(f1,"%c",A[j]);
Bạn nên xem qua các videos hướng dẫn lập trình C ở đây
mình muốn đưa đoạn code này vào 1 hàm và mình viết thế này chương trình chạy được nhưng mà bị lỗi has stop working
int duyetfile(char *fn)
{
FILE*f= fopen("fn","r");
/* if(!f)
{
printf("not find file \n");
return 0;
}*/
int i=0;
char A[100000];
while (!feof(f))
{
fscanf(f,"%c",&A[i]);
i++;
}
fclose(f);
FILE*f1=fopen("output.txt","w");
for (int j=0;j<i;j++)
fprintf(f1,"%c",A[j]);
fclose(f1);
}
int main()
{
duyetfile ("input.txt");
}
Tại bạn comment cái code này. Đoạn code này kiểm tra xem file có tồn tại hay không. Nếu không có, dừng chương trình.
Bạn cố tình bỏ qua nó, dẫn đến không có file, mà bạn lại cố đọc cái chỗ không có đó. Điều đó dẫn đến lỗi.
Code như sau sẽ chạy được.
#include <stdio.h>
int duyetfile(char *fn)
{
FILE*f= fopen("fn","r");
if(!f)
{
printf("not find file \n");
return 0;
}
int i=0;
char A[100000];
while (!feof(f))
{
fscanf(f,"%c",&A[i]);
i++;
}
fclose(f);
FILE*f1=fopen("output.txt","w");
for (int j=0; j<i; j++)
fprintf(f1,"%c",A[j]);
fclose(f1);
return 0;
}
int main()
{
duyetfile ("input.txt");
return 0;
}
tại vì mình thấy khi chạy có đoạn code check đấy,thì luôn hiện not find file,nên xóa đi
mà mình muốn viết 1 đoạn code để khi run chương trình yêu cầu nhập tên file thì
char x;
printf("Nhap ten file: ");
scanf("%c",&x);
duyetfile (x);
sai chỗ nào ạ
Bỏ dấu “” trong fopen là dc mà
Em hiểu ý bạn ấy fn là tên file nhập vào
Chứ không phải là file tên “fn”
đổi thành fopen(fn,“r”); chắc là hết lỗi
À, em nói đúng rồi Anh đang trong cty, cứ thấy code đoạn nào có vấn đề là làm rẹt rẹt ko có đọc =))
Code đã sửa lại nhờ nhắc nhở của @Gio
#include <stdio.h>
int duyetfile(char *fn)
{
FILE*f= fopen(fn,"r");
if(!f)
{
printf("not find file \n");
return 0;
}
int i=0;
char A[100000];
while (!feof(f))
{
fscanf(f,"%c",&A[i]);
i++;
}
fclose(f);
FILE*f1=fopen("output.txt","w");
for (int j=0; j<i; j++)
fprintf(f1,"%c",A[j]);
fclose(f1);
return 0;
}
int main()
{
duyetfile ("input.txt");
return 0;
}
#include"thuviencuatoi.h"
int main( )
{
int i=0, n=0;
float a[100];
FILE *f;
f= fopen("vui.txt", "rt");
// Doc_Day(f, a, &n);
while (!feof(f)) {
fscanf(f, "%f", &a[i]);
i++;
n++;
}
printf("%d\n", n);
/*for(i=0; i<n; i++)
fscanf(f, "%f", &a[i]);*/
fclose(f);
for(i=0; i<n; i++)
printf(" %.2f", a[i]);
}
file vui.txt của mk có 8 phần tử nhưng khi đếm n thì lại có 9 phần tử . Ai bt giúp t vs