0

さまざまなファイルを作成する必要があり、次のような名前を付けたいと思います。

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

そのエラーメッセージが何を伝えているのかわかりません。なにが問題ですか?

4

1 に答える 1

2

as パラメーターofstreamを取るコンストラクターがないことを示しています。std::string

ofstream output(finalName.c_str());代わりに使用してください。

これは C++11 で修正されました。gcc を使用している場合は、渡してみてください-std=c++0x

于 2012-07-09T15:47:21.113 に答える