c++ - 在 C++ 中写入用户指定的文件

标签 c++ file-io compiler-errors

我可以在 C++ 中指定要写入的文件吗?我希望能够输入文件名并写入该文件。当我尝试制作 myfile.open("example.txt") myfile.open(var) 时,出现一个很大的错误...

error: no matching function for call to ‘std::basic_ofstream >::open(std::string&)’ /usr/include/c++/4.2.1/fstream:650: note: candidates are: void std::basic_ofstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits]

你能解释一下我做错了什么吗?我感觉这很简单,因为这是我使用 C++ 的第一周。

最佳答案

如果 varstd::string , 尝试:

myfile.open(var.c_str());

该错误准确地告诉您出了什么问题,尽管命名的模板类型的精确性并不能帮助您清楚地了解问题所在。查看 .open() 的引用资料.它需要一个 const char * 作为文件名,以及另一个可选的模式参数。您传递的不是 const char *

关于c++ - 在 C++ 中写入用户指定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101842/

相关文章:

c++ - 将 std::map::emplace 与返回共享指针的函数一起使用是否正确?

java - 在屏幕上显示保存到文件的数据

php - 如何限制 PHP 中的文件系统访问?

c++ - 打开原始磁盘并获取大小 OS X

c++ - 定义和调用专用模板的 C++ 函数

c++ - Init() 的返回类型冲突

c++ - ISO/IEC 10646 中的 "character short name"是什么?

C# null 合并运算符等效于 c++

swift - Xcode 编译器错误未在编辑器中突出显示

c++ - vector push_back 和析构函数(?): push_back(~Dword(0))