【问题标题】:Want to create many different files, but with different names想要创建许多不同的文件,但名称不同
【发布时间】:2012-07-09 01:23:23
【问题描述】:

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

"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> >&)

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

【问题讨论】:

  • 顺便说一句,如果你升级你的编译器,它应该可以开始工作了。
  • 存在标签,因此您无需在标题中提供它们(即从标题中删除 [C++])。实际标签更强大,因为它们允许索引和搜索

标签: c++ string file file-io io


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多