鱼C论坛

 找回密码
 立即注册
查看: 4591|回复: 7

C文件代码问题

[复制链接]
发表于 2012-9-22 20:45:27 | 显示全部楼层 |阅读模式
5鱼币
  1. #include<stdio.h>
  2. int main()
  3. {FILE *fp;
  4. int p=0,n=0,z=0,temp;
  5. char ch[100];
  6. printf("请输入文件名:");
  7. scanf("%s",&ch);
  8. fp=fopen("ch","r");
  9. if(fp==NULL)
  10. printf("File cannot be found!\n");
  11. else
  12. {
  13. while(!feof(fp))
  14. {fscanf(fp,"%d",&temp);
  15.   if(temp>0) p++;
  16.   else if(temp<0) n++;
  17.   else z++;
  18. }
  19. fclose(fp);
  20. printf("positive:%3d,negtive:%3d,zero:%3d\n",p,n,z);
  21. }
  22. return 0;
  23. }
复制代码
上面输入完整文件路径,却无法执行if语句,但直接用文件路径而不输入,确能执行。请保留原有功能,求做适当修改,能输入输入完整文件路径,执行if语句!!

最佳答案

查看完整内容

1.ch是数组名,做函数参数自动转换为指针 2.“ch”的意思是打开文件名为ch的文件,ch的意思是打开的文件名为字符串ch的内容
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-22 20:45:28 | 显示全部楼层

1.ch是数组名,做函数参数自动转换为指针
2.“ch”的意思是打开文件名为ch的文件,ch的意思是打开的文件名为字符串ch的内容
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-22 20:54:03 | 显示全部楼层
scanf("%s",&ch);
改为scanf("%s",ch);
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-22 21:15:58 | 显示全部楼层
仰望天上的光 发表于 2012-9-22 20:54
scanf("%s",&ch);
改为scanf("%s",ch);

还是一样!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-22 21:23:25 | 显示全部楼层
scanf("%s",&ch);
fp=fopen("ch","r");
改为:
scanf("%s",ch);
fp=fopen(ch,"r");
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-22 21:45:55 | 显示全部楼层
仰望天上的光 发表于 2012-9-22 21:23
scanf("%s",&ch);
fp=fopen("ch","r");
改为:

为什么这样改?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-22 22:35:23 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {FILE *fp;
  4. int p=0,n=0,z=0,temp;
  5. char ch[100];
  6. printf("请输入文件名:");
  7. scanf("%s",&ch);
  8. fp=fopen(ch,"r");
  9. if(fp==NULL)
  10. printf("File cannot be found!\n");
  11. else
  12. {
  13. while(!feof(fp))
  14. {
  15. fscanf(fp,"%d",&temp);
  16. if(temp>0) p++;
  17. else if(temp<0) n++;
  18. else z++;
  19. }
  20. fclose(fp);
  21. printf("positive:%3d,negtive:%3d,zero:%3d\n",p,n,z);
  22. }
  23. return 0;
  24. }
复制代码
scanf("%s",&ch);
这里&没有删掉的必要。取地址符号是本来就应该的
fp=fopen(ch,"r");
这里冒号""去掉。因为""里面的东西代表字符串,而这里是变量不是字符串
以来是执行结果
我把1.txt放在目录下所以不用加路径
xx.JPG




小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-22 23:12:30 | 显示全部楼层
本帖最后由 贝壳 于 2012-9-22 23:29 编辑

4楼正解。

数组的名字就是数组的首地址,不需要&。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-15 05:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表