mzc6838吧 关注:7贴子:239
  • 3回复贴,共1

对于文件的打开和操作……

只看楼主收藏回复

一楼不给看


IP属地:陕西来自Android客户端1楼2015-04-23 09:26回复
    现定义文件指针*p,打开了一个文件fopen("txt.txt","r");然后在下面的语句中进行字符的读取
    while(!feof(p))
    {
    str[i] = fgetc(p);
    i++;
    }
    这里是否有什么问题呢?


    IP属地:陕西来自Android客户端2楼2015-04-23 09:29
    回复
      在fgetc到文件的结尾时,str的最后一个字符并不是'\0',在vs的vc编译环境下,最后一个字符的ascii码是-1,是一个非法字符,这会导致在进行字符串str的操作时产生未知的错误


      IP属地:陕西来自Android客户端3楼2015-04-23 09:32
      回复
        解决这种问题的方法,就是把那个-1字符消去,换成其他合法的字符。这个问题困扰了我一晚上,最后在无限的调试中解决了这个问题实在是严重,但是又不容易发现,一不留神就报错,导致字符串无法访问,今后一定要注意


        IP属地:陕西来自Android客户端4楼2015-04-23 09:34
        回复