gpt4 book ai didi

c++ - C++ 中的 fstream 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:17 24 4
gpt4 key购买 nike

我真的需要你的帮助。看来我不能用 C++ 进行文件操作。我使用 fstream 进行了一些文件操作,但是当我编译它时,出现了一个错误:

|63|error: no matching function for call to 'std::basic_fstream<char>::open(std::string&, const openmode&)'|

我犯了什么错误?

部分源码如下:

#include<stdio.h>
#include<iostream>
#include<fstream>
#include<string>

using namespace std;

inline int exports()
{
string fdir;
// Export Tiled Map
cout << "File to export (include the directory of the file): ";
cin >> fdir;
fstream fp; // File for the map
fp.open(fdir, ios::app);
if (!fp.is_open())
cerr << "File not found. Check the file a file manager if it exists.";
else
{
string creator, map_name, date;
cout << "Creator's name: ";
cin >> creator;
cout << "\nMap name: ";
cin >> map_name;
cout << "\nDate map Created: ";
cin >> date;
fp << "<tresmarck valid='true' creator='"+ creator +"' map='"+ map_name +"' date='"+ date +"'></tresmarck>" << endl;
fp.close();
cout << "\nCongratulations! You just made your map. Now send it over to tresmarck@gmail.com for proper signing. We will also ask you questions. Thank you.";
}
return 0;
}

最佳答案

fstream::open()接受 std::string 类型作为文件名是在 C++11 中添加的。使用 -std=c++11 标志进行编译或使用 fdir.c_str() 作为参数(改为传递 const char*) .

请注意,如果提供了文件名,fstream() 构造函数可以打开文件,这将消除对 fp.open() 的调用:

if (std::cin >> fdir)
{
std::fstream fp(fdir, std::ios::app); // c++11
// std::fstream fp(fdir.c_str(), std::ios::app); // c++03 (and c++11).
if (!fp.is_open())
{
}
else
{
}
}

关于c++ - C++ 中的 fstream 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15762325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com