Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用atof将字符串转换为双精度时发生访问冲突_C++_Access Violation - Fatal编程技术网

C++ 使用atof将字符串转换为双精度时发生访问冲突

C++ 使用atof将字符串转换为双精度时发生访问冲突,c++,access-violation,C++,Access Violation,我使用atof将字符串转换为double。程序从csv文件中一个字符串一个字符串读取,直到达到eof。只有在某个特定的字符串上存在访问冲突问题,而之前的那些字符串没有任何问题。有什么问题吗?错误是 TestOpenCV_CameraCalibration.exe中0x778515de处未处理的异常:0xC0000005:访问冲突读取位置0x406e64b1。事情发生在阿托夫。 程序附在下面 while (!myReadFile.eof()) { //myR

我使用atof将字符串转换为double。程序从csv文件中一个字符串一个字符串读取,直到达到eof。只有在某个特定的字符串上存在访问冲突问题,而之前的那些字符串没有任何问题。有什么问题吗?错误是 TestOpenCV_CameraCalibration.exe中0x778515de处未处理的异常:0xC0000005:访问冲突读取位置0x406e64b1。事情发生在阿托夫。 程序附在下面

 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++;
           }
       }
while(!myReadFile.eof())
{
//myReadFile>>cstr;
getline(myReadFile,cstr,',');
//removedString=RemoveChars(cstr,removedchar);
const char*c=cstr.c_str();
//是否可以考虑使用

将该值读入双精度


比较endptr和char ptr。如果它们相同,不要增加计数器。

要么
j
要么
k
太大。@cnicutar我也这么认为,但是请注意,
k
的范围是1200,
j
的范围是0到2?一定是
temp
有问题boundaries@Aniket那里面什么都没有如果(k==1200)k=k;
@cnicutar
j=j%3