C语言如何将txt文件中的数据存入结构体中

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
struct yh
{
char usename[N];
char password[N];
float money;

}admin[100];

FILE *fp;
int i;
if((fp=fopen("e:\\usdatal.txt","r"))==NULL)
{
printf("不能打开文件\n");
exit(0);
}
while(!feof(fp))
fread(&admin[i], sizeof (struct yh),6,fp);
fclose(fp);
for(i=0;i<100;i++)
printf("%s%s%f",admin[i].usename,admin[i].password,admin[i].money);
fclose(fp);
}

执行后出现这个。

请问是哪里的错误。

因为结构体它里面有多种数据, 所以如果一个一个保存肯定是麻烦的. 所以, 如果保存的文件不是给用户看的, 而是只为程序所用, 那么直接用二进制方式打开文件, 然后用fwrite把结构的二进制数据写入内存

# include <stdio.h>

struct dat
{
    int i;char ch;double d;
};

int main()
{
    FILE *p = fopen("data.txt", "w");
    if (!p)
        return 0;
    fwrite(&p, sizeof(p), 1, p);
    fclose(p);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-23
N没有定义
int i;i没有初始化
采用格式化读取fscanf(),下面是在你的程序基础上稍作修改
#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>
#define N 20
void main()

{

struct yh

{

char usename[N];

char password[N];

float money;

}admin[100];

FILE *fp;

int i=0;

if((fp=fopen("sdatal.txt","r"))==NULL)

{

printf("不能打开文件\n");

exit(0);

}

while(!feof(fp))
{
fscanf(fp, "%s%s%f",admin[i].usename,admin[i].password,&admin[i].money);
i++;
}

fclose(fp);

for(i=0;i<2;i++)

printf("%s\t%s\t%.0f\n",admin[i].usename,admin[i].password,admin[i].money);

fclose(fp);

}本回答被提问者采纳
第2个回答  2013-10-22
用 fscanf 读字符串数字吧

c语言入门代码009 从 txt 文本文件中加载数据到结构体数组
第一步,通过fopen函数以读取模式打开文件,准备从文件头部获取数据。第二步,文件中逐个读取结构体字段,并将数据保存到数组中,直到文件结尾。feof函数用于检测文件是否达到末尾,判断是否需要结束循环。在读取数据时,使用fscanf函数,与scanf相似,但添加了文件指针参数,用于在文件内容中执行读取操作。数据...

c语言,怎么从文件读取数据到结构体,求助
if(c=='\n')r_n++;} printf("r_n=%d\n",r_n);rewind(fp);//将指针重置到第一行 structdata*line1=NULL;line1=(structdata*)malloc(sizeof(structdata)*(r_n+1));//创建一个结构体含有(r_n+1)个数据 for(i=1;i<=r_n;i++...

C语言 如何把文件里面的内容存到结构体数组里面
需要使用文件操作函数fwrite和fread。读物文件并写入结构体,同时保存文件的代码如下:1、写 FILE* fp = fopen("card.dat", "wb");for(int i = 0; i < counts; i++){fwrite(&card[i], sizeof(struct card), 1, fp);}fclose(fp);2、读 FILE* fp = fopen("card.dat", "rb");in...

C语言中怎么将文件的数据读入到结构体数组中 比如 做一个字典 将中英词...
这个就要看你的数据组织了,比如说一个结构体 typedef struct { int index;char *word;char *translate;}dictionary;那么你文件里面的也就要按这个顺序排列,然后再用 dictionary dc;fscanf(fp,"%d%s%s",&dc.index,dc.word,dc.translate);只要按顺序就能正确读取出来的。

c语言怎么把文件中没有对齐的2列数据的放到一个结构体中
这个很简单,首先用fgets获取一行,然后用一个for循环遍历该行,在第一个空格或者TAB出记录位置并将其改为'\\0',然后break,这是该行就被切割成两段了,分别用strcpy复制到对应的地方就OK了

c语言如何将tet文档数据写入结构体
读取一整行的数据,然后在将一整行数据分割后 ,可以搜索strtok方法,然后将分割的写入不同的字段里面

c语言实现读取txt文件数据存入结构数组中 求大神看看我的代码有什么问题...
智能小程序[最佳答案]根据txt文件中数据的格式,可以用fscanf把数据读取到数组中。 下面以一种最基本的情况为例,给出参考代码。 假定结构体格式为 struct test{ int...

C语言结构体读取txt文件中内容,有逗号
用字符读出,判断是否为‘,’,是的话就转化为结构体中的一个变量值,再读取判断,直到都读出来。写入文件的时候每个数据的字节数都是定好的,直接读取一行,然后用memcpy(char* des,char* str,int n)读取,memcpy(des,str+n,m);从第n个字节读m个字节。两种都可以,第二种读字符串的时候有...

C语言中把文件里面的几组数据依次读出来分别赋值给几个结构体变量(用链...
fread(buf,size,count,fp);\/\/buf输入数据起始地址,size 每个数据块的大小,count 每次写入的数据块个数,fp 文件指针 写好后是:while(!feof(fp)){ fread(&temp[i],sizeof(struct use),1,fp);\/\/这个读出来放数组里面 i++;} 问题是你读的是txt文件,完全可以用fscanf()函数么。

用C语言将文本文件中的数据(一个个结构体类型的数据)读到链表中去,代码...
\/\/ 当前学生数组中学生的个数struct student stu[MAX]; \/\/ 学生数组}dd;\/\/ 显示主菜单void menu(){system("cls");\/\/清屏 printf("\\n\\n\\n");printf("\\t\\t\\t ***\\n");printf("\\t\\t\\t \\n");printf("\\t\\t\\t 学生成绩管理系统 \\n");printf("\\t\\t\\t \\n");p...

相似回答