VS2015 C++을 사용하고 있습니다. 나는 파일을 읽고 while 루프를 사용하여 한 줄씩 파일에 입력하려고 시도했다.디버그 어설 션 실패한 벡터 첨자가 범위를 벗어났습니다. C++
Debug Assertion Failed!
Program: C:\Windows\SYSTEM32\MSVCP140D.dll
File: c:\program files (x86)\microsoft visual studio 14.0\vc\include\vector
Line: 1234
Expression: vector subscript out of range
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.
내 코드는 다음과 같다 :
53.74
54.09
53.5
53.72
53.43
:
int main() {
std::ifstream inf("walmart2.txt");
std::vector<std::string> blah;
int j = 0;
if (!inf) {
std::cerr<< "Uh oh, walmart2.txt could not be opened for reading!" << std::endl;
exit(1);
}
while (inf)
{
std::string strInput;
inf >> strInput;
blah[j] = strInput;
j = j + 1;
}
std::cout << blah.size() << '\n';
return 0;
}
파일 "walmart2.txt"은 다음과 같은 형식으로 약 1,800 라인입니다
나는이 오류
나는 무엇이 계속 진행되고 있는지 잘 모릅니다. 어떤 도움을 주셔서 감사합니다.
'ㅋ [J] = strInput;'=> 'ㅋ .push_back (strInput); ' –
'blah'와 같은 기본 생성 벡터는 * empty *입니다. 즉, 인덱스 (심지어 인덱스 '0')는 범위를 벗어납니다. –