C语言读取txt文件

ni_zhi 2010-05-27 09:44:51
1.用fopen(filename, mode),如果filename想直接用文件名a.txt,不想用全路径,txt文件是要和可执行程序放入同一目录吗?或者还有其它方法?
2.txt文件内容比如是
1 2 3
4 5 6 7
8 9
数字中间用空格分开。如果想读取每个数字,应该用什么函数,怎么读呢?
...全文
2225 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
thinkli 2010-05-28
  • 打赏
  • 举报
回复
一次都一行是必要的,毕竟通过外设的文件存取要慢得多,读到缓存里在处理。
bobo364 2010-05-28
  • 打赏
  • 举报
回复
这样是可以读,但换行符怎么辨认,一直是我的一个疑问???请高手解答

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
FILE *fp;
int num[9],i; // 有9个数据

if((fp = fopen("a.txt","r"))==NULL)
{
printf("打开错误!");
exit(1);
}
for(i=0;i<9;i++)
fscanf(fp,"%d",&num[i]); // 读入9个数据

for(i=0;i<9;i++)
printf("%d ",num[i]);

return 0;
}
shangyangi 2010-05-27
  • 打赏
  • 举报
回复
fread()函数可读
budweiser 2010-05-27
  • 打赏
  • 举报
回复
可以用相对路径, 用fscanf
skyhb 2010-05-27
  • 打赏
  • 举报
回复
可以一次读一行,然后放到一个缓冲区内再一个一个分析,也可以一次读一个字符,然后进行分析。个人感觉一次读一行比较好。
chaoliu1024 2010-05-27
  • 打赏
  • 举报
回复
a.txt文件中数据
1 2 3 4 5 6 7 8 9

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
FILE *fp;
int num[9],i; // 有9个数据

if((fp = fopen("a.txt","r"))==NULL)
{
printf("打开错误!");
exit(1);
}
for(i=0;i<9;i++)
fscanf(fp,"%d",&num[i]); // 读入9个数据

for(i=0;i<9;i++)
printf("%d ",num[i]);

return 0;
}
周靖峰 2010-05-27
  • 打赏
  • 举报
回复
用fscanf函数读取数字,用法fscanf(fp, "%d", &num);
qinguan0619 2010-05-27
  • 打赏
  • 举报
回复
读取数字:
1、用fscanf函数一个个读;
2、用fgets函数读整行,然后用strtok函数获得每一个数字。
ni_zhi 2010-05-27
  • 打赏
  • 举报
回复
我想得到的是每个数字,是不是只能读取一个字符,然后判断是不是数字,最后做其它操作,比如赋给数组?有没有简单些的方法
[Quote=引用 1 楼 wade_2003 的回复:]

1.没有路径的话,就是当前工程目录下的文件
2.可以用getline()函数读取一行的
[/Quote]
wade_2003 2010-05-27
  • 打赏
  • 举报
回复
1.没有路径的话,就是当前工程目录下的文件
2.可以用getline()函数读取一行的

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧