| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1848 人关注过本帖
标题:读取文件操作为什么读不到?请帮忙看一下
只看楼主 加入收藏
diudiu00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-8-8
收藏
 问题点数:0 回复次数:14 
读取文件操作为什么读不到?请帮忙看一下

请帮我看看下面这段读文件的程序,不知为什么,总无法读取文件内容

#include "stdio.h" void main() { FILE *fp; fp=fopen("data.txt","r" ); if (fp==NULL) { printf("FILE cannot be opened\n"); exit(1); } else { printf("FILE opened for reading\n"); fclose(fp); } }

搜索更多相关主题的帖子: 文件 FILE printf opened 
2004-08-08 12:07
wubbin
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2004-8-6
收藏
得分:0 

因为你没有使用读语句。参考下面: #include "stdio.h" void main() { FILE *fp; fp=fopen("data.txt","r" ); if (fp==NULL) { printf("FILE cannot be opened\n"); exit(1); } else { printf("FILE opened for reading\n"); /* 添加类似下面的语句*/ { int a; fscanf("%d",&a); // 读一个整数赋给变量a fprintf("%d",a); } fclose(fp); } }

2004-08-08 14:44
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
以下是引用wubbin在2004-08-08 14:44:49的发言:

/* 添加类似下面的语句*/ { int a; fscanf("%d",&a); // 读一个整数赋给变量a fprintf("%d",a); }

fscanf 和 fprintf 没有文件指针参数行不行的啊?


淘宝杜琨
2004-08-08 15:40
diudiu00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-8-8
收藏
得分:0 
二楼的那位朋友,你说的那个应该加在哪里呀?我的程序运行的时候总是显示“FILE cannot be opened ”。也就是说它总是满足fp==NULL的条件,但是我的data.txt文件中有数据呀,而且第一个字符不是空格呀,怎么读不到数据呢?

2004-08-08 15:54
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
请保证你的文件和你的源程序放在同一个目录下

淘宝杜琨
2004-08-08 16:03
diudiu00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-8-8
收藏
得分:0 
是放在同一文件夹下的。

2004-08-08 16:25
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

还没想到,不过提醒exit()函数要用#include <stdlib.h>头文件

刚才用VC编译了一下,通过了,显示“file opened for reading”你可能放错了位置而已。

刚才又编译了一次,加了几行代码,没问题的。代码如下:

ifstream live41("data.txt", ios::nocreate); //读入文件,对象化命名为live41 while(live41.good()) { char ch = 0; live41.get(ch); //读文件里面的字符,每读一个就写给ch变量 cout << ch; } live41.close();

忘了说,这个ifstream类要用头文件fstream.h,我用的是VC,不知turbo C有没有

[此贴子已经被作者于2004-08-08 16:59:37编辑过]

2004-08-08 16:39
diudiu00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-8-8
收藏
得分:0 
我是在TC中编译和执行的,没有打开文件。经楼上的提示,我在VC里面也编译和执行了一下,可以读出文件内容。怎么在TC和VC里面还不一样呢?

2004-08-08 17:02
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
我个人感觉是,我把data.txt文件放在和.cpp同一层的,而VC编译后找的是找和.cpp同一层,虽然VC编译后的可执行文件是另外新建一个文件夹,但它load是读取上一层,我猜想可能TC是读取内层的吧,你试一下把data.txt放在不同位置。
2004-08-08 17:15
wubbin
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2004-8-6
收藏
得分:0 
在fscanf后面忘写文件指针了

对不起,我疏忽了,在fscanf后面忘写文件指针了。文件读写示例: // 从文件中读 FILE * f1=fopen("t1.dat","r") int a; fscanf(f1,"%d",&a); // 读一个整数赋给变量a fprintf("%d",a); // 输出检查a fclose(f1); // 向文件写入 FILE * f2=fopen("t2.dat","w") int b=34; fprintf(f2,"%d",b); // 向文件写入一个整数b fclose(f2);

2004-08-08 18:40
快速回复:读取文件操作为什么读不到?请帮忙看一下
数据加载中...
 
   



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

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