c++ 初心者 です。
c++ のプログラムで、for 文やwhile文の中に出力させる文章を置いて、出力されるファイル名をforやwhileの変数に関連ずけるには、どういったものを書けばよいでしょうか?
たとえば、以下のようなプログラムを書いて実行すると、"test"という文が書かれた"1"というファイル名のファイルが出力されます。
/ / / / / / / / / / / / / / / / / / /
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream of;
of.open("1", ios::app);
of << "test" << endl;
of.close();
return 0;
}
/ / / / / / / / / / / / / / / / / / /
上のプログラムの中の出力ファイル名は"1"ですが、これをfor文等のループの中で"1"〜"10"として10個のファイルを出力したいです。
以下のように書くと、"i"というファイルに"test"という文字が10個書き込まれます。
/ / / / / / / / / / / / / / / / / / /
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int i;
ofstream of;
for(i=0; i<=10; i++) {
of.open("i", ios::app);
of << "test" << endl;
of.close();
}
return 0;
}
/ / / / / / / / / / / / / / / / / / /
上のプログラムの中の"i"のクオーテーションマーク""をとって
of.open(i, ios::app);
のように書いたらエラーでコンパイルできません。また、
of.open((char*) i, ios::app);
のように書くとコンパイルはできますが、ファイルができません。
ファイル名"1"に"test"
ファイル名"2"に"test"
ファイル名"3"に"test"
・
・
・
ファイル名"10に"test"
という風に出力できればいいのですが...
わかる方すみませんが、ご指導願います
こんなんでいいのかしら
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main() {
for ( int i = 0; i <= 10; i++) {
ostringstream name;
name << i;
ofstream file(name.str().c_str());
file << "test" << endl;
}
}
http://oshiete.goo.ne.jp/qa/7438632.html
こちらの質問を転載しているようですな。
転載している時点で既に回答付いていたりはしますが。
↑貰った回答に誤りがあるんで満足できなかったのかな。
編集 削除>επιστημηさん
ありがとうございます。できました。sstreamをincludeして使うのですね。早速このあたりのことをもっと勉強しておきます。
>瀬戸っぷさん
すみません、質問のところにリンクを貼りませんでした。以後気をつけます。あちらで質問したときに頂いた回答では、まだ勉強不足のせいもありわからなかったので、こちらで再質問させて頂きました。