如何使用C语言从TXT文件中读取如下格式的数据并存储与数组中?
答案:3 悬赏:70 手机版
解决时间 2021-03-25 08:17
- 提问者网友:心牵心
- 2021-03-25 01:58
如何使用C语言从TXT文件中读取如下格式的数据并存储与数组中?
最佳答案
- 五星知识达人网友:七十二街
- 2021-03-25 02:11
1.fopen函数打开需要读取的文本,获取该文件的文件描述符
2.使用fscan()函数对文件进行读取。
3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置
例如
#include "stdio.h"
#define M 300
#define N 50
void main()
{
int i,j;
float a[M][N]={0};
FILE *fp;
if((fp=fopen("test.txt","rt"))==NULL)
{
printf("cannot open file
");
return;
}
for(i=0;i {
for(j=0;j fscanf(fp,"%f",&a[i][j]);
fscanf(fp,"
");
}
fclose(fp);
for(i=0;i {
for(j=0;j printf("%g ",a[i][j]);
printf("
");
}
}
2.使用fscan()函数对文件进行读取。
3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置
例如
#include "stdio.h"
#define M 300
#define N 50
void main()
{
int i,j;
float a[M][N]={0};
FILE *fp;
if((fp=fopen("test.txt","rt"))==NULL)
{
printf("cannot open file
");
return;
}
for(i=0;i
for(j=0;j
fscanf(fp,"
");
}
fclose(fp);
for(i=0;i
for(j=0;j
printf("
");
}
}
全部回答
- 1楼网友:轻雾山林
- 2021-03-25 03:55
二次嵌套循环实现:
外循环从文件中获取所有行的数据,至于如何判断行尾,对应用程序员是透明的,不同的操作系统有不同特定字符判断法,即对应不同的库函数实现,应用程序员只需要调用标准库函数即可,比如可以用readline,getline实现行读取
内循环对每行数据中的每个值遍历,每一行中每个数据之间应该有分隔符不然系统无法分隔数据,可以用strtok分隔,再用atoi,atof,strtod等完成数值转换,最后将其存入数组即可
外循环从文件中获取所有行的数据,至于如何判断行尾,对应用程序员是透明的,不同的操作系统有不同特定字符判断法,即对应不同的库函数实现,应用程序员只需要调用标准库函数即可,比如可以用readline,getline实现行读取
内循环对每行数据中的每个值遍历,每一行中每个数据之间应该有分隔符不然系统无法分隔数据,可以用strtok分隔,再用atoi,atof,strtod等完成数值转换,最后将其存入数组即可
- 2楼网友:duile
- 2021-03-25 03:23
你的每个数据之间有什么明显的间隔符么?
还是按行存储的?
以间隔符为分割点,每次读取出来间隔符之间的字符存储到字符串中,
然后判断字符串中是否存在.(小数点),
不存在就用atoi转化为整形。
存在小数点用atof函数转化为浮点型。
或者不判断小数点是否存在,统一atof就行。追问行之间没有明显间隔符,就是普通换行,可能写问题的时候多按了一下回车。
在下非计算机专业,只是被要求做一些模拟计算。我得到的数据时每一行各数据之间使用的TAB那个东西隔开的,这在读取时是否与空格不同呢?另外,如何判断当前读取的数据为一行的末尾呢?即如何控制程序进入下一行继续读取呢?追答那就是按行存储的啊,行末尾是'\r\n'或者'\n'字符。
每次读取一行就行了。
你读取了这一行,文件内部指针自然就走到了这行的结尾,略去结尾符不读,自然的指针就到了下一行了,不用转化。
C里面也是有按行读取的函数的,或者一些函数按照行读取的格式,有很多种方法的,你可以百度一下,选择你最适合的方法就行了。
还是按行存储的?
以间隔符为分割点,每次读取出来间隔符之间的字符存储到字符串中,
然后判断字符串中是否存在.(小数点),
不存在就用atoi转化为整形。
存在小数点用atof函数转化为浮点型。
或者不判断小数点是否存在,统一atof就行。追问行之间没有明显间隔符,就是普通换行,可能写问题的时候多按了一下回车。
在下非计算机专业,只是被要求做一些模拟计算。我得到的数据时每一行各数据之间使用的TAB那个东西隔开的,这在读取时是否与空格不同呢?另外,如何判断当前读取的数据为一行的末尾呢?即如何控制程序进入下一行继续读取呢?追答那就是按行存储的啊,行末尾是'\r\n'或者'\n'字符。
每次读取一行就行了。
你读取了这一行,文件内部指针自然就走到了这行的结尾,略去结尾符不读,自然的指针就到了下一行了,不用转化。
C里面也是有按行读取的函数的,或者一些函数按照行读取的格式,有很多种方法的,你可以百度一下,选择你最适合的方法就行了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯