当前位置:编程学习 > C/C++ >>

如何用C语言将一个txt文件放到一个二维数组中?

如何用C语言将一个txt文件放到一个二维数组中? txt中的每一行都是1,2,3,这样的格式? 我要具体的代码,在线等,谢谢!!!!!
答案:#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;

}
其他: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]; 文件里面是
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;
}
给你个模版,你可以根据你的需要去修改

上一个:c语言函数调用 递归函数问题求解
下一个:求c语言设计万年历 代码。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,