c++ - 想要创建许多不同的文件,但名称不同

标签 c++ string file file-io io

我需要创建一堆不同的文件,我想将它们命名为:

"signal1.dat", "signal2.dat", "signal3.dat", ... , "signal100.dat"

这是我目前所拥有的

std::stringstream ss;
std::string out = "signal";
std::string format = ".dat";
std::string finalName;
int TrkNxtSig = 1;

...
[code]  
... 


ss << out << TrkNxtSig << format;
finalName = ss.str();
ofstream output(finalName); 
TrkNxtSig++;

我收到这个错误

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

我不确定该错误消息告诉我什么。怎么了?

最佳答案

它告诉您 ofstream 没有将 std::string 作为参数的构造函数。

改用 ofstream output(finalName.c_str());

这已在 C++11 中修复。如果您使用的是 gcc,请尝试将其传递给 -std=c++0x

关于c++ - 想要创建许多不同的文件,但名称不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11398548/

相关文章:

ruby-on-rails - 使 Rails 生成单引号字符串而不是双引号字符串以满足 RuboCop

string - Scala 字符串修剪一组字符

file - 如何使用反斜杠符号和 2 个点 ('\..' 获取文件路径

linux - 我在 SVN 中四处移动,来回复制文件。现在我不能使用它

c++ - 在 Qt Creator 中编译 Visual Studio 2010 项目?

c++ - 无法在 C++ 中的数组中存储值

ruby - 注入(inject)字符串的最干净的方法

java - 我需要为聊天客户端分配多少个线程?

c++ - 通过取消引用的基类指针 boost 序列化

c++ - 被调用者分配被调用者释放