你数组开大点不行吗?另外,读一行
fgets(buf,sizeof(buf)-1,fp);

解决方案 »

  1.   

    C语言中的字符串末尾有隐含字符“\0”,所以当你读入100个字符时会导致字符串超界,可能不会引起编译器出错,程序有时也能运行,但结果不正常;而且在文本文件中每行结尾都有两个不可见字符“\r\n”,实际一行长度为102,文件读取是以字节为单位,字符串读入以一个非字符的空白字符作为结尾。
    你所出现的情况就是前一次循环读数时只能读取101字符,而在第二次循环时读入的是一个单字符‘\n’所致。实际情况可以通过DEBUG监视。