你的意思是把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;
}
追问![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/9358d109b3de9c828a74860a6e81800a19d84325?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
是这个意思,但是你的那个程序有error,运行不了,可不可以帮我改一下我的?
十分感谢。
追答我的程序我这里测试过了,可以正确运行啊,应该是打开的输入文件路径你和我的不一下,
你改一下我的程序中的这一行:
FILE *fp = fopen("input.txt", "r");
改成你输入文件所在的位置即可,如果你D盘下真有这个文件,那这行就改成:
FILE *fp = fopen("D:\\read1.txt", "r");
追问![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/c8177f3e6709c93d133762729d3df8dcd0005469?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
这两行有错,
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/b3fb43166d224f4afdee1c960bf790529922d1c4?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
他说没;,还有个没定义。
但这些都有啊,我也是不懂了。
追答看来只能远程帮你调试了。
加我qq ,284304241
追问太感谢了