C++的一个小程序出错,请各位帮帮忙
这个程序就是读入一个文件,将这个文件按照行的顺序从后往前输出(《Thinking in C++》第二章第5题)
代码为:
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
vector <string> file;
ifstream in( "1.txt ");
string s;
while(getline(in,s))
file.push_back(s);
for(int i=file.size();i> =0;i--)
cout < < i < < ": " < <file[i] < <endl;
}
编译没错,就是运行出错,出错信息为:
"0x00425f6c "指令引用的 "0xdddddddd "内存。该内存不能为 "read "。
请各位指点指点~谢谢~
[解决办法]
第一次循环越界了,访问不存在的元素.所以会出错
for(int i=file.size()-1;i> =0;i--)
需要减1