【发布时间】:2014-11-17 04:29:05
【问题描述】:
我正在尝试使用函数从文本文件中读取某一行以供以后使用,但它似乎没有返回字符串。函数如下:
std::vector<std::string> TextArray(string filePath) {
int arrayNum = 0;
std::vector<std::string> stringArray;
ifstream file (filePath);
std::string str;
while (std::getline(file,str)){
stringArray.push_back(str);
}
return stringArray;//returns an array
}
内部主要:
std::vector<std::string> fileString = TextArray("c:/computerAi/saved");
std::cout << fileString[1] << std::endl;
我收到一条错误消息,提示“向量下标超出范围”
【问题讨论】:
-
改用 fileString[0]。
-
当您使用调试器单步执行程序时,
push_backus 行执行了多少次? -
您确定
c:/computerAi/saved将始终包含至少两行吗?就像您试图引用 fileString[1] 一样,它可以是空的。