Я использую 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.
Мой код выглядит следующим образом:
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" составляет около 1800 строк в следующем формате:
53.74
54.09
53.5
53.72
53.43
Я не совсем уверен, что происходит. Любая помощь приветствуется.
'бла [J] = strInput;' => 'бла .push_back (strInput); ' –
Построенные по умолчанию векторы (например, ваш' blah') * empty *. Это означает, что любое индексирование в них (даже индекс '0') будет за пределами границ. –