在C语言中如何文件中的结构体数据打印出来,下面是我的程序,求大神帮忙看看,谢谢了~~

Python017

在C语言中如何文件中的结构体数据打印出来,下面是我的程序,求大神帮忙看看,谢谢了~~,第1张

问题在你从终端输入数据的时候,从终端输入的数据都保存在了缓存里,当你输入数据的时候你做了两个操作,一、输入数据(比如是 9);二、按回车。这样一来你的缓存里其实有两个数据9和回车,所以当你第一个scanf的时候读的是9,第二个scanf的时候读的是回车(\n)。要避免这种情况有两种方法,最直接的是每次在你调用scanf之前清除缓存【fflush(stdin)】,第二种是每次scanf调用完之后调用一次getchar(),并且返回值可以不给任何变量。

>printf("请输入第%d个人的号码:",num)

>scanf("%d",&work[num].id)

=>

printf("请输入第%d个人的号码:",num)

fflush(stdin)

scanf("%d",&work[num].id)

>printf("请输入第%d个人的号码:",num)

>scanf("%d",&work[num].id)

=>

printf("请输入第%d个人的号码:",num)

scanf("%d",&work[num].id)

getchar()

一般是把打印封装成一个函数如:

int printStudent(student* p)

{

printf("%d\n", p->num)

printf("%s",p->name)

return0

}