| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 813 人关注过本帖
标题:在书上抄的一个程序 但不能运行 求各位前辈解答
只看楼主 加入收藏
西边
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-7-25
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:14 
在书上抄的一个程序 但不能运行 求各位前辈解答
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
FILE *fp1,*fp2;
char str[20];
if((fp1=fopen("e:\\miao.txt","r"))==NULL) /*以只读的方式打开文件1*/
{
printf("cannot open file");
exit(0);
}
if((fp2=fopen("e:\\sl.txt","w"))==NULL)/*以只写的方式打开文件2*/
{
printf("cannot open file");
exit(0);
}
while((strlen(fgets(str,20,fp1)))>0)/*从文件读入的字符长度大于0*/
{
fputs(str,fp2);/*将字符写入文件2中*/
printf("%s,str");/*在屏幕上显示文件中的字符*/
}
fclose(fp1);
fclose(fp2);
}
这是代码 运行的时候出现这样的问题
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include cannot file 
2013-08-01 22:28
XiaoXiao_Ren
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
威 望:1
帖 子:80
专家分:198
注 册:2013-7-17
收藏
得分:5 
回复 楼主 西边
fputs(str,fp2);/*将字符写入文件2中*/
printf("%s,str");/*在屏幕上显示文件中的字符*/

printf("%s",str); ————这里修改一下

否极泰来
2013-08-01 22:32
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:5 
while((strlen(fgets(str,20,fp1)))>0)/*从文件读入的字符长度大于0*/
还有这句,fgets函数返回的是指针,应改为:while((fgets(str,20,fp1)) == NULL);

准确点如果读取失败也会返回NULL,所以应该借助feof函数确定是否读取到文件尾。
feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。
2013-08-01 22:45
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
楼主看完2楼和3楼说的了吗?再把书拿来对比下是你自己马虎打错了还是书上印错了?

总有那身价贱的人给作业贴回复完整的代码
2013-08-02 01:39
西边
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-7-25
收藏
得分:0 
回复 2楼 XiaoXiao_Ren
这个 我抄错了 不好意思哈
2013-08-02 10:52
西边
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-7-25
收藏
得分:0 
回复 3楼 幽灵X
这个我这样改了 可还出现我截图的那种情况
2013-08-02 10:53
西边
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-7-25
收藏
得分:0 
回复 4楼 embed_xuel
2楼那个事自己抄错了  不过这书上错误真的好多
2013-08-02 10:54
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:0 
回复 7楼 西边
抱歉,我给你讲错了。用我的试下,别忘了先创建miao.txt,在里面写个字符串,再运行。
程序代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
FILE *fp1,*fp2;
char str[20];
if((fp1=fopen("e:\\miao.txt","r"))==NULL) /*以只读的方式打开文件1*/
{
printf("cannot open file");
exit(0);
}
if((fp2=fopen("e:\\sl.txt","w"))==NULL)/*以只写的方式打开文件2*/
{
printf("cannot open file");
exit(0);
}
while(fgets(str,20,fp1))/*从文件读入的字符长度大于0*/
{
fputs(str,fp2);/*将字符写入文件2中*/
printf("%s\n",str);/*在屏幕上显示文件中的字符*/
}
fclose(fp1);
fclose(fp2);
}
2013-08-02 11:00
西边
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2013-7-25
收藏
得分:0 
回复 8楼 幽灵X
嗯嗯 太感谢了 行了 就是把while那一行那个>0删掉就行了啊
2013-08-02 11:57
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:0 
回复 9楼 西边
记得结贴啊
2013-08-02 12:37
快速回复:在书上抄的一个程序 但不能运行 求各位前辈解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026568 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved