• 締切済み

入力した値をファイルに出力するプログラム

C++でscanfなどで入力した値をファイルに出力するプログラムを作りたいのですがうまくいきません。下記のプログラムを書いてみたのですが入力した値を出力することができませんでした。どこを変更すればいいのかわかる方がいましたらご指導よろしくお願いします。 #include<iostream> #include <fstream> using namespace std; int main( ) { char ch; char ss[10]; int dt; int i,p; ofstream fileout; // 出力用ストリームの宣言 ifstream filein; // 入力用ストリームの宣言 fileout.open("sampledata.txt"); // 出力ファイルをオープン if (!fileout) // エラー処理 { cout << "エラー!出力ファイルをオープンできません\n"; return 1; } printf("IDを入力してください:"); scanf("%s",i); printf("\nパスワードを入力してください:"); scanf("%s",p); printf("\n登録しました。"); fileout << "ID=%d PASS=%s\n",i,p; // 文字列データ出力 fileout.close(); // 出力ファイルをクローズ filein.open("sampledata.txt"); // 入力ファイルをオープン if (!filein) // エラー処理 { cout << "エラー!入力ファイルをオープンできません\n"; return 1; } filein >> ch; // 文字データ入力 filein >> ss; // 文字列データ入力 filein >> dt; // 数値データの入力 cout << ch << '\n'; cout << ss << '\n'; cout << dt << '\n'; filein.close(); // 出力ファイルをクローズ return 0; }

みんなの回答

回答No.4

まず C++言語 の勉強の前に C言語 を勉強してください。 (ポインタ、配列、構造体、ファイル入出力 を理解しましょう) C言語 でできることは大体 C++言語 でもできる為、 違いが理解できないでしょう。

chitaro_10
質問者

お礼

ありがとうございました。解決しました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

printf/scanf を使うなら cstdio を #include するのが安全だし, これを #include するなら fstream を使わないで cstdio を使う方がいいと思うんだけど.... なんで fstream を使ってるんでしょうか?

chitaro_10
質問者

お礼

ありがとうございました。解決しました。

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.2

> fileout << "ID=%d PASS=%s\n",i,p; // 文字列データ出力 ostreamをこんな使い方は出来ないんじゃないですか。

chitaro_10
質問者

お礼

ご回答ありがとうございます。 プログラミング初心者でまったくわかってないのが現状です。 どのようなコマンドを使えばいいのか教えていただけないでしょうか?

noname#77845
noname#77845
回答No.1

まずは、scanfの使い方をもう一度チェックしましょう。 何か入力されていますか? i,pは何型? scanfにこだわる理由は?

chitaro_10
質問者

お礼

ご回答ありがとうございます。 scanfにこだわってるわけではないのですが、scanfしか入力するコマンドをしらなくて… もしよろしければどこを直せばいいのか教えていただけませんか?

関連するQ&A

専門家に質問してみよう