小白求助!!关于C语言读取文本文件到结构体数组问题。
直接读取没接触过,出此下策,先写入在读取。可是在云运行过程中,写入无效而且输入第一行数据回车后,会直接退出,求助大神!!...
直接读取没接触过,出此下策,先写入在读取。可是在云运行过程中,写入无效而且输入第一行数据回车后,会直接退出,求助大神!!
展开
3个回答
展开全部
C语言中对结构体数据格式文件进行读取时,必须以二进制格式打开文件,然后按结构体类型变量内存块方式进行数据读取,相关读数据命令为fread()。
函数说明:
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
从stream文件流中,读取nmemb个size大小的数据块到ptr所指的内存buf中,返回读取到的有效数据块数。
如,有如下结构体定义:
typedef struct TEST
{
int num;
double score;
}STRTEST;
STRTEST data ;
FILE *fp = fopen("file.dat", "rb" ) ; //按二进制格式打开文件
int n=fread( &data, sizeof(STRTEST), 1, fp ); //读取一个数据块到变量data中。
函数说明:
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
从stream文件流中,读取nmemb个size大小的数据块到ptr所指的内存buf中,返回读取到的有效数据块数。
如,有如下结构体定义:
typedef struct TEST
{
int num;
double score;
}STRTEST;
STRTEST data ;
FILE *fp = fopen("file.dat", "rb" ) ; //按二进制格式打开文件
int n=fread( &data, sizeof(STRTEST), 1, fp ); //读取一个数据块到变量data中。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ID等char类型的结构体成员应该定义成数组,如:
char ID[32];
......
char sech[16];
同时,在scanf函数中,在plandata[i].seatnum和plandata[i].pnum的前面加上&。
char ID[32];
......
char sech[16];
同时,在scanf函数中,在plandata[i].seatnum和plandata[i].pnum的前面加上&。
追问
再问一下,有什么办法可以直接读取文本文件的内容到我的结构体中吗,然后在主函数中声明,就直接可以用数据
追答
用fscanf函数可以,具体用法自己找资料。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所有char的成员,都应该是char数组
代码可以继续按照现在的,定义类型的地方改一下就差不多了
代码可以继续按照现在的,定义类型的地方改一下就差不多了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询