如何解决fscanf函数会因为%[^\n] 而出现烫烫烫的乱码 c语言?

他会自动从lname那一部分读取完文件里的资料 之后从gender开始就会出现乱码了

1.fscanf本来就会跳过\n,写%[^\n]有何意义?最后那个\n者祸害,把它删除。追问

我把%[^\n] 换成%c 过后再把staff.lname 加个& 后还是一样出现乱码 这次还会出现两次一样的数据 我只记录一次数据在文件里

追答

把while的()中还是要改成原来的样子,你改成这样,在第一次进入while时并没有读文件,!feof函数判断将会出错,并将错误转嫁到最后。由于fscanf太长,写在while的()中不方便,建议写成while(1){fscanf....;printf(....;if(feof(stff)) break;。

追问

这个是把while 换了之后跟%[^\n]换成%s 之后的output 这次并没有出现乱码 但是却出现重复性的数据 原本的数据到 qqq就停止了的 但是 qqq却去了下一行和重复了一次之前的数据

追答

要把if(feof(stff)) break;放到fscanf(...后面,printf(...前面。是我追答成成printf...之后了……

追问

换了之后还是一样 2 6 4 之后的数据也没有读取出来 然后gender那边会读取lname 空格之后的数据

追答

把你的文件弄上来我写,怎么可能呢!

温馨提示:答案为网友推荐,仅供参考
相似回答