2017-07-06 9 views
-1

ユーザーにセクション番号(1.1、3.4、4.23など)を入力させると、セクション番号を.txtドキュメントに書き込む必要があります。 1.0を含み、現在1.0は整数1(または1.1として書かれている1.10)として書かれています。FileIO、ドキュメントへの書き込み、var = 1.0は1になります

これを「if」文の束として扱うのは面倒ですが、より良い方法がありますか?

編集:あなたはfloatとして1.0を入力した場合

#include <iostream> 
#include <fstream> 
#include <sstream> 
using namespace std; 

int main() 
{ 
    cout << "Enter a float here" << endl; 
    float f; 
    cin >> f; 

    ofstream fine; 
    fine.open("fine.txt", ios::out); 
    fine << f << "\n"; 
} 

、それは.txtに1が保存されます。私ができることが必要なのは、ユーザーが1.0や1.10のような数字を入力して、それらを.txtに書込み可能にし、ゼロを切り捨てないでください。

+0

ファイルに書き込むコードを表示してください。 – user0042

+0

[mcve]してください。あなたの実装がどのように見えるかを推測しておかないでください。 –

+1

あなたの制約を知らなくても、適切な解を推測することはできません。セクション番号の有効なフォーマットは何ですか?検証を実行しますか?少し間違った入力(例えば1.10)から良いもの(1.1など)への変換はどうですか? _specific_する必要があります。 –

答えて

6

floatは、「セクション番号」を表すのにひどい選択です。 floatを使用すると、§1.1==§1.10と§1.3.2は存在できません。代わりにstd::stringを試してください:

#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
using namespace std; 

int main() 
{ 
    cout << "Enter a section number here" << endl; 
    string f; 
    cin >> f; 

    ofstream fine; 
    fine.open("fine.txt", ios::out); 
    fine << f << "\n"; 
} 
関連する問題