0
atof를 사용하여 문자열을 double로 변환했습니다. 프로그램은 eof에 도달 할 때까지 하나의 문자열로 하나의 문자열을 csv 파일에서 읽습니다. 특정 문자열에서만 액세스 위반 문제가 발생하기 전에 이러한 문자열이 문제가되지 않습니다. 무엇이 문제 일 수 있습니까? 0x3500005 : 0x406e64b1 위치를 읽는 액세스 위반. 그 일이 atof에서 일어났습니다. 이 프로그램은atof로 문자열을 double로 변환 할 때 액세스 위반이 발생했습니다.
strtod이 문자의 PTR에 endptr 비교 이중
로 값을 읽어 사용을 고려
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++;
}
}
'j' 또는'k'가 너무 큽니다. – cnicutar
@cnicutar 나는 또한 그렇게 믿는다.하지만 'k'는 1200에,'j'는 0에서 2로, 'temp'의 경계에는 뭔가 틀린 것이 틀림 없습니다. –
@Aniket 그 중 하나를 경계하는 코드는 없습니다. – cnicutar