C语言如何从文件中把数据读入指针数组,代码如下

C语言如何从文件中把数据读入指针数组,代码如下,第1张

int main()

{

// 假设buf空间足够大滚物源困

#define max_buf 256

char arr[max_buf]={0}

FILE*fp

fp=fopen("大裂液data.txt","r")

read(arr, 1, max_buf, fp) // 读取 1 * max_buf 个字节

fclose(fp)

}

要用动态分配让指针变量有数据存放单元。

给你写完皮键整了。

n=30给定了。你也可以用临时输入的方法,改变人数要租握握求。

数据文件名也给定为 abc.txt .

#include<弊庆stdio.h>

#define N 16

typedef struct Data

{

char (*name)[N]

int *xuehao

} DT

main()

{

DT data

int i,n=30

FILE *fp

data.xuehao=(int *) malloc(sizeof(int)*n) //动态分配

data.name = (char (*)[N]) malloc( sizeof(char) * n) //动态分配

fp = fopen("abc.txt","r")

for(i=0i<ni++){

fscanf(fp,"%s", data.name[i])

fscanf(fp,"%d", &data.xuehao[i])

}

fclose(fp)

for(i=0i<ni++){

printf("%s %d\n",data.name[i], data.xuehao[i])

}

}

============

若喜欢指针形式,你写指针形式就是了:

fscanf(fp,"%s", data.name+i)

fscanf(fp,"%d", data.xuehao+i)

#include <stdio.h>

#include <windows.h>

#define HEIGHT 22

#define WIDTH  46

#define FN     "pet.txt"

void showFile(char * filename, char *arr, int h, int w)

int main()

{

    int x, y

char data[HEIGHT][WIDTH]

showFile (FN,(char *)data,HEIGHT,WIDTH)/*data是指向数组的指针,所以需要转换为char * 

                                        */

/*以下显示怪兽*/

for(x=0x<HEIGHTx++)

{

for(y=0y<WIDTHy++)

printf("%c",*(*(data+x)+y)) /* *(*(data+x)+y))=data[x][y] */

        printf("\n")

}

return 0

}

void showFile(char * filename, char *arr, int h, int w)

{

FILE *fp=fopen(filename,"rb") /*以二进制的方式读取数据判羡,也就是说filename里面的数据

     也必须是以二进制形式写入的,否则显示会不正确

                                */

if(fp!=NULL)

{

fread(arr,sizeof(char),HEIGHT*WIDTH,fp)

fclose(fp)

}

else

{   

printf("Error occured while open file - %s\n",filename)/*打升冲念开文吵困件出错*/

exit(1)

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存