如何用C语言将一个txt文件放到一个二维数组中?
如何用C语言将一个txt文件放到一个二维数组中?txt中的每一行都是1,2,3,这样的格式?我要具体的代码,在线等,谢谢!!!!!...
如何用C语言将一个txt文件放到一个二维数组中?
txt中的每一行都是1,2,3,这样的格式?
我要具体的代码,在线等,谢谢!!!!! 展开
txt中的每一行都是1,2,3,这样的格式?
我要具体的代码,在线等,谢谢!!!!! 展开
4个回答
展开全部
fopen函数打开需要读取的文本,获取该文件的文件描述符
使用fscan()函数对文件进行读取。
放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置
例如
#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\n");
return;
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
fscanf(fp,"%f",&a[i][j]);
fscanf(fp,"\n");
}
fclose(fp);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%g ",a[i][j]);
printf("\n");
}
}
展开全部
文件里面是
1 2 3
4 5 6
7 8 9
#include <stdio.h>
int main()
{
int s[10][10],i,j;
FILE *fp;
fp = fopen("D:\\123.txt","r+");
if(fp == NULL)
{
printf("error\n");
}
else
{
i = 0 ;
while(!feof(fp)) // 判断是否到文件末尾
{
j = 0 ;
fscanf(fp,"%d%d%d",&s[i][j],&s[i][j+1],&s[i][j+2]);
i++;
}
for( i = 0 ; i < 3 ; i++)
{
for( j = 0 ; j < 3 ; j++)
{
printf("%d ",s[i][j]);
}
printf("\n");
}
}
return 0;
}
给你个模版,你可以根据你的需要去修改
1 2 3
4 5 6
7 8 9
#include <stdio.h>
int main()
{
int s[10][10],i,j;
FILE *fp;
fp = fopen("D:\\123.txt","r+");
if(fp == NULL)
{
printf("error\n");
}
else
{
i = 0 ;
while(!feof(fp)) // 判断是否到文件末尾
{
j = 0 ;
fscanf(fp,"%d%d%d",&s[i][j],&s[i][j+1],&s[i][j+2]);
i++;
}
for( i = 0 ; i < 3 ; i++)
{
for( j = 0 ; j < 3 ; j++)
{
printf("%d ",s[i][j]);
}
printf("\n");
}
}
return 0;
}
给你个模版,你可以根据你的需要去修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
/*
1.txt
1,2,3,4,5,6,7
8,9,10,11,12,13,14
15,16,17,18,19,20,21
*/
int main ()
{
FILE *fp;
int **a;//定义二维数组
int i,j;
int row=0,column=0;//行,列
char ch;
//打开文件
if((fp=fopen("1.txt","r"))==NULL)
{
printf("open error\n");
return 1;
}
//统计列数
while(!feof(fp)&&(ch=fgetc(fp))!='\n')
if(ch==',')
column++;
column++;
if(column==1)
{
printf("no data\n");
return 1;
}
//置文件首部
fseek(fp,0L,0);
//统计行数
while(!feof(fp))
if(fgetc(fp)=='\n')
row++;
row++;
if(row==1)
{
printf("no data\n");
return 1;
}
//开辟内存
a=(int**)malloc(sizeof(int*)*row);
if(a==NULL)
{
printf("no memory\n");
return 1;
}
for(i=0;i<row;i++)
{
a[i]=(int*)malloc(sizeof(int)*column);
if(a[i]==NULL)
{
printf("no memory\n");
return 1;
}
}
//置文件首部
fseek(fp,0L,0);
//读入数据
while(!feof(fp))
for(i=0;i<row;i++)
for(j=0;j<column;j++)
fscanf(fp,"%d,",&a[i][j]);
//输出显示
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
j==column-1?printf("%d",a[i][j]):printf("%d,",a[i][j]);
printf("\n");
}
//关闭文件
fclose(fp);
//释放内存
for(i=0;i<row;i++)
free(a[i]);
free(a);
return 0;
}
#include <stdlib.h>
/*
1.txt
1,2,3,4,5,6,7
8,9,10,11,12,13,14
15,16,17,18,19,20,21
*/
int main ()
{
FILE *fp;
int **a;//定义二维数组
int i,j;
int row=0,column=0;//行,列
char ch;
//打开文件
if((fp=fopen("1.txt","r"))==NULL)
{
printf("open error\n");
return 1;
}
//统计列数
while(!feof(fp)&&(ch=fgetc(fp))!='\n')
if(ch==',')
column++;
column++;
if(column==1)
{
printf("no data\n");
return 1;
}
//置文件首部
fseek(fp,0L,0);
//统计行数
while(!feof(fp))
if(fgetc(fp)=='\n')
row++;
row++;
if(row==1)
{
printf("no data\n");
return 1;
}
//开辟内存
a=(int**)malloc(sizeof(int*)*row);
if(a==NULL)
{
printf("no memory\n");
return 1;
}
for(i=0;i<row;i++)
{
a[i]=(int*)malloc(sizeof(int)*column);
if(a[i]==NULL)
{
printf("no memory\n");
return 1;
}
}
//置文件首部
fseek(fp,0L,0);
//读入数据
while(!feof(fp))
for(i=0;i<row;i++)
for(j=0;j<column;j++)
fscanf(fp,"%d,",&a[i][j]);
//输出显示
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
j==column-1?printf("%d",a[i][j]):printf("%d,",a[i][j]);
printf("\n");
}
//关闭文件
fclose(fp);
//释放内存
for(i=0;i<row;i++)
free(a[i]);
free(a);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ifstream infile("XX.txt");
int const ROW = 6; //6行
int const COL = 6; //6列
int array[ROW][COL];
for (int i = 0; i < ROW; i++)
for (int j =0; j < COL; j++)
infile>>array[i][j];
int const ROW = 6; //6行
int const COL = 6; //6列
int array[ROW][COL];
for (int i = 0; i < ROW; i++)
for (int j =0; j < COL; j++)
infile>>array[i][j];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询