如何把文件的内容读取放入二维数组

如何把文件的内容读取放入二维数组,第1张

1、使用双层循环语句,就可以依次把数据顺序读入到一个二维数组当中了。

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数组

        printf("%d: ",i) //打印行号

        //puts(arr[i])

        char *subarr = strtok(arr[i]," ")  //以空格为分隔符从arr[i]中获得字串

        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)  //关闭指针

}

1. 如何将一组数据存到二维数组

用memcpy函数,进行内存拷贝。例如:

#include<stdio.h>

#include <string.h>

int main()

{

int a[3][3]={1,2,3,4,5,6,7,8,9}

int b[9]

memcpy(b,a,sizeof(b))

for(int i=0i<9i++)

printf("%d ",b[i])

return 0

}

2. 如何读取文件,并把数据存到二维数组中

#include

int i,a[100]

int main(){

FILE * fp1 = fopen("input.txt", "r");打开输入文件

FILE * fp2 = fopen("output.txt", "w");打开输出文件

if (fp1==NULL || fp2==NULL) {若打开文件失败则退出

puts("不能打开文件!");

rturn 0

}

for(i=0fscanf(fp1,"%d",a+i)!=EOFi++);从输入文件连续读取整数到数组a

for(i--)fscanf(fp2,"%d ",a[i]);把数组a逆序写入到输出文件当中

fclose(fp1);关闭输入文件

fclose(fp2);关闭输出文件,相当于保存

return 0

}

3. 在C语言中,如何把键盘输入的数据存入二维数组

#include "stdio.h"

#define N 100

int main()

{

int i

int j

int n

int a[N][N]

printf("Input n:")

scanf("%d",&n)

printf("Input a[i][j]:")

for(i = 0i <ni++)

{

for(j = 0j <nj++)

{

scanf("%d", &a[i][j])

}

}

for(i = 0i <ni++)

{

for(j = 0j <nj++)

{

printf("%d ",a[i][j])

}

printf("\n")

}

return 0

}

你的程序,我改好了。

4. C语言如何将数据放入二维数组

我给你个动态分配二维数组的函数,访问二维数组就看范例的应用吧。

#include "stdio.h"

#include "conio.h"

#include "stdlib.h"

int **AllocIntArray(int row,int col)

{

int i,j

int **pArray

pArray=(int **)malloc(row*sizeof(int *))

if(pArray==NULL) return NULL

for(i=0i

5. 请教关于c语言如何从文件读取数据存入二维数组的问题

#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); 将字7a64e4b893e5b19e31333330343264串转为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); 关闭指针

}

C语言中从.txt文本文件中按行读取字符串数据至二维数组中,代码如下:#include <stdio.h>

main()

{

char s[10][20] = {0} //定义一个二维数组

int i=0

FILE *fp//文件指针

fp = fopen("1.txt","r")//读取文本文件1.txt

for(i=0i<3i++)

{

fscanf(fp,"%s",s[i])

printf("%s\n",s[i])//打印数据到二维数组中

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7926332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存