c语言链表写入文件有点问题,用记事本打开每次运行那个函数时都会多俩 ?和0,读文件好像也有点问题

请问这是什么哪里的错啊,怎么改一下
写入文件有点问题 每次写都会多?和0
读文件好像也不太对,

我的输入是这样的

img

打开文件却是这样

img

然后是读写文件和创建链表的函数

img

img

img

结构体定义的字符串,如果没有输入满的话,其他位默认是0
?的话应该是内存越界了,一个随机字符,显示不出来的就变成了?

scanf()函数对%s格式读取字符串直到遇到空白符(空格、制表符、回车符),所以你输入的,会被当作字符串的一部分,而不是当作分隔符
你可以把输入那行改成

scanf("%s%s%d", q->name, q->number, &q->amount);

相应输入数据用空格隔开,而不用','
文件输入输出也要作相应处理