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

2025-02-16 22:37:27
推荐回答(3个)
回答1:

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

# include 

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);
}

回答2:

N没有定义
int i;i没有初始化
采用格式化读取fscanf(),下面是在你的程序基础上稍作修改
#include

#include

#include

#include
#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);

}

回答3:

用 fscanf 读字符串数字吧