请教关于c语言如何从文件读取数据存入二维数组的问题
比如一个txt文件储存着这样格式的数据182645回车3545回车346958数字中间有空格请问如何读取这些数据到储存到一个二维数组里呢?初学者,没有找到可行的办法。。谢...
比如一个txt文件储存着这样格式的数据
18 26 45回车
35 45回车
34 69 58
数字中间有空格 请问如何读取这些数据到储存到一个二维数组里呢?初学者,没有找到可行的办法。。谢谢各位了
哦不好意思 有个很重要的我忘说了 我想得到的是整形的数据 然后储存到二维数组里 行列不变 拜托了 展开
18 26 45回车
35 45回车
34 69 58
数字中间有空格 请问如何读取这些数据到储存到一个二维数组里呢?初学者,没有找到可行的办法。。谢谢各位了
哦不好意思 有个很重要的我忘说了 我想得到的是整形的数据 然后储存到二维数组里 行列不变 拜托了 展开
2个回答
展开全部
#include <stdio.h>
#include <string.h>
#define MAXLINE 3
#define MAXCOLUMN 10
void main(void){
FILE *fp; //文件指针
char arr[MAXLINE][MAXCOLUMN]={0}; //定义3行10列的二维数组并初始化
int i = -1;
if((fp=fopen("./test/filename.txt","r"))==NULL){ //打开txt文件
perror("File open error!\n");
return;
}
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //读取一行并存到arr数组,百度fgets
printf("%d: ",i); //打印行号
//puts(arr[i]);
char *subarr = strtok(arr[i]," "); //以空格为分隔符从arr[i]中获得字串,百度strtok
while(subarr!=NULL){
data[i][j] = atoi(subarr); //将字串转为int型数据存入data数组
printf("%d\t",data[i][j]); //打印data[i][j
subarr = strtok(NULL," "); //继续获得arr[i]中的字串
j++; //data数组列加一
}
printf("\n");
}
//循环完毕后,所有数据已在data数组中
printf("\n");
fclose(fp); //关闭指针
}
#include <string.h>
#define MAXLINE 3
#define MAXCOLUMN 10
void main(void){
FILE *fp; //文件指针
char arr[MAXLINE][MAXCOLUMN]={0}; //定义3行10列的二维数组并初始化
int i = -1;
if((fp=fopen("./test/filename.txt","r"))==NULL){ //打开txt文件
perror("File open error!\n");
return;
}
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //读取一行并存到arr数组,百度fgets
printf("%d: ",i); //打印行号
//puts(arr[i]);
char *subarr = strtok(arr[i]," "); //以空格为分隔符从arr[i]中获得字串,百度strtok
while(subarr!=NULL){
data[i][j] = atoi(subarr); //将字串转为int型数据存入data数组
printf("%d\t",data[i][j]); //打印data[i][j
subarr = strtok(NULL," "); //继续获得arr[i]中的字串
j++; //data数组列加一
}
printf("\n");
}
//循环完毕后,所有数据已在data数组中
printf("\n");
fclose(fp); //关闭指针
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询