C++ 程序未从文本文件c++;
我试图使用函数从文本文件中读取某一行,以备以后使用,但它似乎没有返回字符串。功能如下:C++ 程序未从文本文件c++;,c++,string,function,C++,String,Function,我试图使用函数从文本文件中读取某一行,以备以后使用,但它似乎没有返回字符串。功能如下: std::vector<std::string> TextArray(string filePath) { int arrayNum = 0; std::vector<std::string> stringArray; ifstream file (filePath); std::string str; while (std::getline(f
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 TextArray(字符串文件路径){
int-arrayNum=0;
std::向量字符串数组;
ifstream文件(filePath);
std::字符串str;
while(std::getline(文件,str)){
stringArray.push_-back(str);
}
return stringArray;//返回一个数组
}
内干管:
std::vector<std::string> fileString = TextArray("c:/computerAi/saved");
std::cout << fileString[1] << std::endl;
std::vector fileString=TextArray(“c:/computerAi/saved”);
std::cout我怀疑路径可能是问题所在<代码>“c:/computerAi/saved”
不是有效路径。它应该是“C:\\computerAi\\saved”
。双反斜杠是必要的,因为反斜杠是C/C++中的转义字符。如果文件流无法打开,则向量可能为空。另外,我在这里假设C:\computerAi\saved
实际上是一个文件,而不是一个目录
此外,正如bvj在注释中提到的,下标1是向量中的第二个元素,而不是第一个。因此,如果需要第一个元素,请尝试使用fileString[0]
而不是fileString[1]
编辑:我仍然怀疑路径是问题所在。以下程序适用于我:
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
std::vector<std::string> TextArray(std::string filePath)
{
int arrayNum = 0;
std::vector<std::string> stringArray;
std::ifstream file(filePath.c_str());
std::string str;
while (std::getline(file,str))
{
stringArray.push_back(str);
}
return stringArray;//returns an array
}
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<std::string> fileString = TextArray("c:\\temp\\testing.txt");
std::cout << fileString[1] << std::endl;
return 0;
}
#包括
#包括
#包括
#包括
std::vector TextArray(std::string文件路径)
{
int-arrayNum=0;
std::向量字符串数组;
std::ifstream文件(filePath.c_str());
std::字符串str;
while(std::getline(文件,str))
{
stringArray.push_-back(str);
}
return stringArray;//返回一个数组
}
int _tmain(int argc,_TCHAR*argv[]
{
std::vector fileString=TextArray(“c:\\temp\\testing.txt”);
std::不能改为尝试fileString[0]。当您使用调试器单步执行程序时,执行push_-back
us的行有多少次?您确定c:/computerAi/saved
将始终包含至少两行吗?就像您试图引用fileString[1]一样虽然它可以是空的。注意:a/
在路径中是有效的,但是以小写字母“c”开头的路径是可疑的。c:\computerAi是一个目录谢谢我放学后会尝试这个!