0

我使用 atof 将字符串转换为双精度。该程序从 csv 文件中逐个字符串地读取,直到达到 eof。仅在特定字符串存在访问冲突问题,而之前的那些字符串没有任何问题。可能是什么问题呢?错误是 TestOpenCV_CameraCalibration.exe 中 0x778515de 处的未处理异常:0xC0000005:访问冲突读取位置 0x406e64b1。它发生在 atof。该程序附在下面

 while (!myReadFile.eof()) 
       {
           //myReadFile>>cstr;
           getline ( myReadFile, cstr, ',' );
           //removedString = RemoveChars(cstr, removedchar);
           const char * c = cstr.c_str();
           //cout << k << "\n";
           if(k == 1200)
               k = k;
           temp[j++][k] = atof(c);
           if(i < 3)
           {
               if((j = j % 2) == 0) 
                   k++;
           }
           else
           {
               if((j = j % 3) == 0) 
                   k++;
           }
       }
4

1 回答 1

0

考虑使用strtod

将值读入双精度

将 endptr 与您的 char ptr 进行比较。如果它们相同,请不要增加您的计数器。

于 2013-02-22T03:44:17.500 回答