ここから本文です

C++でファイル出力のやりかた・・・

ryo********さん

2007/11/122:50:07

C++でファイル出力のやりかた・・・

#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;

int main(){
double a,b;
ofstream fout; // ファイルストリーム



for(double x=0.01;x<10;){
b = sin(x)/x;
cout << " " << x << " " << b << "\n";
x += 0.01;

// filename.txt を出力モードで開く
fout.open ("filename.txt", ios::out);
if (!fout)
return -1; // ファイルオープンエラーの時
fout << b << "\n"; // 一行出力

fout.close();
}
}

と書いてみたのですが・・・思ったようにいかずどうしていいのかわかりません。
私がやりたいことは、計算されている値を
一行づつ出力させてやりたいのですが・・・。
b = sin(x)/x;
をfor文でループさせているので
その値を一行づつ・・・・

x b
0.01 ~~~
0.02~~~

みたいな形でです。

それと位置?のそろえ方を教えてもらえますでしょうか??

x b
0.01 ~~~~~~
0.02 ~~~~~~
0.1 ~~~~~~
1 ~~~~~

とずれてしまうのが気になるので・・・
よろしくお願いします。

補足ちょっとスペースが消えてしまったのでもう一度。

x b
0.01 ~~~
0.02 ~~~

とスペースを空けたいのです。

閲覧数:
8,612
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

tai********さん

2007/11/312:57:57

open,closeの位置をfor文の外にします。

位置をそろえるのは、coutのprecisionやwidthなどの書式設定メソッドを呼び出して
行います。とりあえず、位置がそろうようにしてみましたが、後はお好みに合わせて変更
下さい。

int main(){
double a,b;
ofstream fout; // ファイルストリーム

// filename.txt を出力モードで開く
fout.open ("filename.txt", ios::out);

for(double x=0.01;x<0.9;){
b = sin(x)/x;

cout.setf( ios::showpoint ) ;
cout.setf(ios::fixed) ;
cout.precision( 2) ;
cout.width(5) ;

cout << x;

cout.precision(8);
cout.width(12);
cout << " " << b << "\n";

x += 0.01;

if (!fout)
return -1; // ファイルオープンエラーの時
fout << b << "\n"; // 一行出力
}
fout.close();
}

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる