{
// 假设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)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)