1

データベースの概念のように読み取り可能なファイルを出力したいと考えています。私が期待するものは次のとおりです。

Name[10]  ContactNo[15]  GENDER[10]
====================================
Johnny    +60123456789   MALE      
Emily     +69876543210   FEMALE    
Jason     +61535648979   MALE      

そして、私はこれをやろうとします:

char name[10],contact[15],gender[10];

//user input here//

ofstream myfile("contact.txt");
myfile>>name>>contact>>gender;

ただし、出力ファイルのすべての文字列はスペースなしで連結されます。私がそれを行うことができるという考えはありますか?ファイルから正確な幅でデータを読み取り、それらを変数に入れるときに、これを実行しようとしましたが、それは間違った概念ですか? または何か提案はありますか?

4

3 に答える 3

2

ストリームマニピュレータの組み合わせで、std::setwあなたstd::setfillが望むことをします:

myfile << std::setfill(' ') << std::left
       << std::setw(10) << name
       << std::setw(15) << contact
       << std::setw(10) << gender;

setfill塗りつぶしに使用する文字を指定できます。std::leftstd::internalstd::right、塗りつぶし文字の位置を指定します。

于 2013-08-21T10:10:55.900 に答える
0

含め<stdio.h>て使用しますprintf()

printf ( "%10s %15s %10s\n", name, contact, gender );

それはあなたが望むものを手に入れるはずです。

于 2013-08-21T10:07:14.523 に答える
0

値の間に記号を使用することをお勧め\tします。\tタブを挿入します。次に、次のように書く必要があります。

myfile>>name>>"\t">>contact>>"\t">>gender;
于 2013-08-21T10:07:36.273 に答える