C语言怎么读取txt文件中一行的数据?
比如我定义了一个二维数组a[3][3]现在用文件中的数据给数组赋值date1.txt01123456date2.txt567125我的意思是每行数据个数都不一样,这时候如...
比如我定义了一个二维数组a[3][3] 现在用文件中的数据给数组赋值
date1.txt
0 1
1 2 3
4 5 6
date2.txt
5 6 7
1 2
5
我的意思是每行数据个数都不一样,这时候如何读入? 展开
date1.txt
0 1
1 2 3
4 5 6
date2.txt
5 6 7
1 2
5
我的意思是每行数据个数都不一样,这时候如何读入? 展开
4个回答
展开全部
打开文件 fopen("需要打开的路径")
然后使用fgets函数读取行
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024
int main()
{
char buf[MAX_LINE]; /*缓冲区*/
FILE *fp; /*文件指针*/
int len; /*行字符个数*/
if((fp = fopen("test.txt","r")) == NULL)
{
perror("fail to read");
exit (1) ;
}
while(fgets(buf,MAX_LINE,fp) != NULL)
{
len = strlen(buf);
buf[len-1] = '\0'; /*去掉换行符*/
printf("%s %d \n",buf,len - 1);
}
return 0;
}
2013-05-25 · 知道合伙人互联网行家
关注
展开全部
ifstream 的 getline 分隔符用行尾,要是有问题等我回到机器那再给你写几行。。。
对不起才看到不是c++
对不起才看到不是c++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在文本文件模式下,每行的末尾是固定的字符 0D 0A , 这两个字符标志着有换行,
其中0D对应ASCII码里的 回车键'\r', 0A对应ASCII码里的 换行符'\n'
所以,你只要能判断连续的两个字符是0D 0A那么就意味着换行了。
你读的时候,一次读到一个大的buffer里,然后进行字符的比较判断,过滤出相应的数据。
其中0D对应ASCII码里的 回车键'\r', 0A对应ASCII码里的 换行符'\n'
所以,你只要能判断连续的两个字符是0D 0A那么就意味着换行了。
你读的时候,一次读到一个大的buffer里,然后进行字符的比较判断,过滤出相应的数据。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用fgets函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询