Hello c ++ newbie over !!! !!!
我正在开发一个非常简单的程序,它打开保存在矢量中的文件,反转每个文件的内容文本,并保存新文件。 我正在使用代码块
我收到错误:
outFile.open( foundFiles[i].insert(3,"m_"), fstream::in);
" no matching function for call to 'std::basic_fstream::open(std::basic_string&, std::_Ios_Openmode)'| "
here is the code so far:
string reverseLine(string message);
string reverseLine(string message)
{
string reversed;
int i = message.length() -1;
while (i>=0)
{
reversed = reversed + message[i];
i = i -1;
}
return reversed;
}
void filesToModify();
void filesToModify() // put files into vector
{
fstream filesInVector; // files open from the vector
string openFLine; // lines read from the files read from the vector
fstream outFile; //files saved after reversing the files
vector <string> foundFiles; //vector holding all the files to be reversed
foundFiles.push_back("e:/file_1.txt");
foundFiles.push_back("e:/file_2.txt");
foundFiles.push_back("e:/file_3.txt");
for (int i=0; i<foundFiles.size(); i++) // read the files inside the vector
{
filesInVector.open(foundFiles[i], fstream::in);
while (!filesInVector.eof())
{
getline(filesInVector,openFLine);
outFile<<reverseLine(openFLine);
outFile.open( foundFiles[i].insert(3,"m_"), fstream::in); // add "m_" to the created file
foundFiles[i].close(); // close the file
std::remove(foundFiles[i]); // remove the original file
}
}
int main()
{
filesToModify();
}
答案 0 :(得分:0)
outFile.open( foundFiles[i].insert(3,"m_").c_str (), fstream::in);
C ++以前没有字符串数据类型。它稍后在STL(标准模板库)中添加。这些早期的C ++版本使用了char *(指向字符的指针)。字符串只是由字符数组表示,以0 char(char为代码0)结束。持有这个数组的第一个字符的地址。
有些函数仍然期望使用char *而不是字符串。 方法c_str()的STL类字符串将STL字符串转换为char *。