如何用c语言将txt的数据读入结构体中

我在txt中存入了四行数据,然后定义一个结构体
struct JiYin{ char ID[100]; char jianji[100]; char fuhao[2]; char zhiliangzhi[100];};typedef struct JiYin JY;
想把他们存入结构体中,应该怎么做呢?在线等,谢谢!!

你的意思是把txt文件中的四行分别读入结构吧:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct JiYin
{
    char ID[100];
    char jianji[100];
    char fuhao[2];
    char zhiliangzhi[100];
};

static int input(char *dst, int len, FILE *fp)
{
char buf[1024];
if(!fgets(buf, sizeof(buf), fp))return -1;
int slen = strlen(buf);
if (slen < 1)return 0;
if(buf[slen - 1]=='\n')buf[slen - 1] = '\0';
strncpy(dst, buf, len);
}

int main(int argc, char *argv[])
{
FILE *fp = fopen("input.txt", "r");
struct JiYin obj;
memset(&obj, 0, sizeof(struct JiYin));
input(obj.ID, sizeof(obj.ID) - 1, fp);
input(obj.jianji, sizeof(obj.jianji) - 1, fp);
input(obj.fuhao, sizeof(obj.fuhao) - 1, fp);
input(obj.zhiliangzhi, sizeof(obj.zhiliangzhi) - 1, fp);
printf("%s\n%s\n%s\n%s\n",
 obj.ID, obj.jianji, obj.fuhao, obj.zhiliangzhi);
    return 0;
}

追问

是这个意思,但是你的那个程序有error,运行不了,可不可以帮我改一下我的?

十分感谢。

追答

我的程序我这里测试过了,可以正确运行啊,应该是打开的输入文件路径你和我的不一下,
你改一下我的程序中的这一行:
FILE *fp = fopen("input.txt", "r");
改成你输入文件所在的位置即可,如果你D盘下真有这个文件,那这行就改成:
FILE *fp = fopen("D:\\read1.txt", "r");

追问

这两行有错,

他说没;,还有个没定义。

但这些都有啊,我也是不懂了。

追答

看来只能远程帮你调试了。
加我qq ,284304241

追问

太感谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-03
直接scanf(“%c“,JY[i].ID);scanf(“%c“,JY[i].jianji);scanf(“%c“,JY[i].fuhao);
scanf(“%c“,JY[i].zhiliangzhi);你判断一下字符需要存到哪个里面,然后读就行了追问

相似回答