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])//打印数据到二维数组中
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)