|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
跟着小甲鱼视频敲的
8 #include<stdio.h>
9 #include<stdlib.h>
10
11 int main()
12 {
13 FILE *fp1;
14 FILE *fp2;
15
16 int ch;
17
18 if((fp1 = fopen("1.txt","r")) == NULL)
19 {
20 printf("打开文件失败\n");
21 exit(EXIT_FAILURE);
22 }
23
24 if((fp2 = fopen("3.txt","w"))==NULL)
25 {
26 printf("打开文件失败\n");
27 exit(EXIT_FAILURE);
28 }
29
30 while((ch=fgetc(fp1)!= EOF))
31 {
32 fputc(ch,fp2);
33 }
34
35 fclose(fp1);
36 fclose(fp2);
37
38 return 0;
39 }
这段代码存在一个括号位置不正确的问题,导致程序逻辑出现错误。在while循环中,应该先将fgetc(fp1)的返回值与EOF进行比较,再将结果赋值给ch,因为!=的优先级比=低。修改后的代码如下:
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- FILE *fp1;
- FILE *fp2;
- int ch;
- if((fp1 = fopen("1.txt","r")) == NULL)
- {
- printf("打开文件失败\n");
- exit(EXIT_FAILURE);
- }
- if((fp2 = fopen("3.txt","w"))==NULL)
- {
- printf("打开文件失败\n");
- exit(EXIT_FAILURE);
- }
- while((ch=fgetc(fp1))!= EOF)
- {
- fputc(ch,fp2);
- }
- fclose(fp1);
- fclose(fp2);
- return 0;
- }
复制代码
另外,如果复制过去之后是乱码,可能是因为编码格式不同。可以尝试将源代码文件的编码格式改为UTF-8,再复制粘贴到其他地方。
|
-
|