user-0 提问: 将结构体数据录入文件中出现问题

回复:
user: user-0
content: 引用 1 楼 user-3的回复:直接贴代码不好吗，报错信息是啥，波浪线的提示是什么，是不是没有包含相应的头文件？ 没有报错，程序可以运行，但输入后的数据存不到打开的文件中

user: user-0
content: 引用 1 楼 user-3的回复:直接贴代码不好吗，报错信息是啥，波浪线的提示是什么，是不是没有包含相应的头文件？ 不知道怎么贴😂😂

user: user-1
content: 引用 2 楼 qzjhjxj 的回复:供参考：#include <stdio.h> #include <stdlib.h>  typedef struct staffmessages{         long worknum;         char name[10];         int  award;//基本工资         int  award1;//职务工资         int  award2;//岗位津贴         int  award3;//特殊津贴         int  award4;//工资 }STA;  int printdata(STA sta1[]) {     int i=1,a=0;     for(;;){        printf("请输入工号:");        fflush(stdout);        rewind(stdin);        scanf("%ld",&sta1[a].worknum);//scanf_s("%ld",&sta1[a].worknum);        printf("请输入姓名:");        fflush(stdout);        rewind(stdin);        scanf("%s",sta1[a].name);//scanf_s("",sta1[a].name,sizoef(sta1.[a].name));        printf("请输入基本工资:");        fflush(stdout);        rewind(stdin);        scanf("%d",&sta1[a].award);//scanf_s("%d",&sta1[a].award);        printf("请输入职务工资:");        fflush(stdout);        rewind(stdin);        scanf("%d",&sta1[a].award1);//scsnf_s("%d",&sta1[a].award1);        printf("请输入岗位津贴:");        fflush(stdout);        rewind(stdin);        scanf("%d",&sta1[a].award2);//scanf_s("%d",&sta12[a].award2);        printf("请输入特殊津贴:");        fflush(stdout);        rewind(stdin);        scanf("%d",&sta1[a].award3);//scanf_s("%d",&sta1[a].award3);         sta1[a].award4=sta1[a].award + sta1[a].award1 + sta1[a].award2 + sta1[a].award3;        printf("工资:%d\n",sta1[a].award4);        a++;        printf("是否继续录入(如是则输入1，否则输入0):");        fflush(stdout);        rewind(stdin);        scanf("%d",&i);//scanf_s("%d",&i);        if(i==0) break;     }     return a; }  void writetofile(STA sta1[],int a) {     FILE *fp;     int i;     fp=fopen("cb.txt","w");     if(fp == NULL){//if(fopen_s(&fa,"cb.txt","w")==NULL){        printf("Failure to open text");        exit(0);     }     for(i=0;i<a;i++){       fprintf(fp,"%10ld%8s%5d%5d%5d%5d%5d",       sta1[i].worknum,sta1[i].name,sta1[i].award,sta1[i].award1,sta1[i].award2,sta1[i].award2,sta1[i].award3,sta1[i].award4);     }     fclose(fp); }  int main(void) {    //FILE *fp;    STA sta[100];    int b;    b=printdata(sta);    writetofile(sta,b);     return 0; } vs里不支持scanf吧。  另外：fflush(stdout);这个是做什么？

user: user-2
content: 供参考：#include <stdio.h> #include <stdlib.h>  typedef struct staffmessages{         long worknum;         char name[10];         int  award;//基本工资         int  award1;//职务工资         int  award2;//岗位津贴         int  award3;//特殊津贴         int  award4;//工资 }STA;  int printdata(STA sta1[]) {     int i=1,a=0;     for(;;){        printf("请输入工号:");        fflush(stdout);        rewind(stdin);        scanf("%ld",&sta1[a].worknum);//scanf_s("%ld",&sta1[a].worknum);        printf("请输入姓名:");        fflush(stdout);        rewind(stdin);        scanf("%s",sta1[a].name);//scanf_s("",sta1[a].name,sizoef(sta1.[a].name));        printf("请输入基本工资:");        fflush(stdout);        rewind(stdin);        scanf("%d",&sta1[a].award);//scanf_s("%d",&sta1[a].award);        printf("请输入职务工资:");        fflush(stdout);        rewind(stdin);        scanf("%d",&sta1[a].award1);//scsnf_s("%d",&sta1[a].award1);        printf("请输入岗位津贴:");        fflush(stdout);        rewind(stdin);        scanf("%d",&sta1[a].award2);//scanf_s("%d",&sta12[a].award2);        printf("请输入特殊津贴:");        fflush(stdout);        rewind(stdin);        scanf("%d",&sta1[a].award3);//scanf_s("%d",&sta1[a].award3);         sta1[a].award4=sta1[a].award + sta1[a].award1 + sta1[a].award2 + sta1[a].award3;        printf("工资:%d\n",sta1[a].award4);        a++;        printf("是否继续录入(如是则输入1，否则输入0):");        fflush(stdout);        rewind(stdin);        scanf("%d",&i);//scanf_s("%d",&i);        if(i==0) break;     }     return a; }  void writetofile(STA sta1[],int a) {     FILE *fp;     int i;     fp=fopen("cb.txt","w");     if(fp == NULL){//if(fopen_s(&fa,"cb.txt","w")==NULL){        printf("Failure to open text");        exit(0);     }     for(i=0;i<a;i++){       fprintf(fp,"%10ld%8s%5d%5d%5d%5d%5d",       sta1[i].worknum,sta1[i].name,sta1[i].award,sta1[i].award1,sta1[i].award2,sta1[i].award2,sta1[i].award3,sta1[i].award4);     }     fclose(fp); }  int main(void) {    //FILE *fp;    STA sta[100];    int b;    b=printdata(sta);    writetofile(sta,b);     return 0; }

user: user-3
content: 直接贴代码不好吗，报错信息是啥，波浪线的提示是什么，是不是没有包含相应的头文件？