- 締切済み
C++でファイル出力
C++の初心者です。 あるデータをプログラムで計算し、それをファイル出力したいと考えております。 その際、10秒ごとに名前を変えてファイルを新規作成し出力ということはできるのでしょうか? たとえば、 int main(){ for(int i =0;i <10000; i++){ //cout << i << '\n'; /* ここでファイル出力をしたい */ /* 0から順に計算して改行し、出力 */ /* 最初は"hoge1.txt"に出力後、10秒ごとに"hoge2.txt"、 "hoge3..txt"と出力したい*/ /* hoge5.txtになったら終了 */ } } という感じです。 どなたか教えていただけませんでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
> 新規ファイルを作成するところとtime関数などがよくわからない為、 それぐらいは自分で考えてくださいね。 for (int i = 1; i <= 5; i++) { char filename[] = "hoge0.txt"; filename[4] += i; std::ofstream ofs(filename); // ここで出力 for (std::time_t t1 = std::time(0), t2 = t1; std::difftime(t2, t1) < 10; t2 = std::time(0)) ; } こんな感じでよいのでは?
- Tacosan
- ベストアンサー率23% (3656/15482)
「新規ファイルを作成するところとtime関数などがよくわからない」って書いてますけど, どのくらい調べました? まさか「調べてないけどとりあえず聞いてみる」なんてことはしてないでしょうね? 「ファイルを作る」のは fstream あたり. time は C の範囲. と書いておくけど, 「プログラムを C++ で書かなければならない理由」はどこにもないような気がする....
- jacta
- ベストアンサー率26% (845/3158)
> 10秒ごとに名前を変えてファイルを新規作成し出力ということはできるのでしょうか? 処理系によりますが、それほどタイマーの精度が高くなくてもよいのであれば、大抵は可能です。 time関数またはclock関数を使って計時するようにしてください。
補足
さっそくの回答ありがとうございます。 新規ファイルを作成するところとtime関数などがよくわからない為、 例として書いていただけませんでしょうか?