我这段代码,为什么在打印content的时候,总是会出现最后几个字符是乱码?(这个乱码字符的个数,会随文件长短变化的)。比如:我的fileLength是150的话,打印content,结果就会有4个是乱码。
CStdioFile fp;
int fileLength;
unsigned content[1000];fp.Open("wenjian.txt",CFile::modeRead)fileLength =fp.GetLength;
fp.Read(content, fileLength);for(int i = 0; i <fileLength; i++)
   printf("%c",content[i]);
我本来是想把文件的内容全读到数组里面的,如果我这种方法不行的话,能不能一个一个字符的读到数组里?请高手告诉如果这么读的话怎么读?
我的文件每行的长短是不一定的,所以不能一行一行的读!

解决方案 »

  1.   

    初始化的问题。
    unsigned content[1000];时,对content填充了很多初始数据,
    在使用前,
    memset(content, 0, sizeof(content));
      

  2.   

    CStdioFile fp;
    int fileLength;
    unsigned content[1000];
    memset(content,0,sizeof(content));//数据初始化下再看看
    fp.Open("wenjian.txt",CFile::modeRead)fileLength =fp.GetLength;
    fp.Read(content, fileLength);for(int i = 0; i <fileLength; i++)
       printf("%c",content[i]);
      

  3.   

    换行符,在C 中是‘\n’(0x0d),在文件中好像是0x0d、0x0a,所以你在printf前要对字符判断,遇到0x0a要跳过去!
      

  4.   

    乱码的问题已经使用ouyh12345(五岭散人) 和livedeal(怀念) 的方法解决,谢谢各位!
    但是现在还是存在着个问题,为什么在打印文件的后面会多出来几个空格呢?我的意思是在我的文件的后面和press any key to continue的前面,两者之间会有几个空格,这是为什么?