char ch[4194303];
FILE* fp;fp = fopen("bei\\123.txt", "r+"); //打开这个123文件while(!feof(fp))
{
  fread(ch, 1, 4194303, fp);    //写入ch 数组里
}
//////////////////////循环读取ch数组里的数据
for (int idx=0;idx<4194304;idx++)
{
   int temp3 = ch[idx];
}
////////////////////////////////////用记事本打开123.txt,内容是"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 51 53 50 58 59 51 50 51 52 78 51等等"为什么我读出的是33 53 33 45 32 等等,都没有33 45 32这些数,哪里来的呢?。之前的0都没有读,读了些无关的数据。

解决方案 »

  1.   

    ...4194304
    你这个文件这么长...
    fread把文本内容读入内存,你看到的33,53,33什么的就是文本字符的ascii码。
      

  2.   

    int temp3 = ch[idx];
    这里你是把字符赋给了int类型
    比如字符'0',对于的ASCII码是0x30,
      

  3.   

    哦,好的谢谢。如果才能让temp3等于0呢?感觉要字符串转换成整形。
      

  4.   

    记事本里面看到的是字符, ch[idx]保存的是asc值,不一样的。而且有些“值”记事本只能显示为空白