4

残念ながら、さまざまなフィールドを区切るスペースの代わりに、ヌル文字がある割り当てのためにファイルからデータを読み取る必要があります。ファイルから整数を取得すると、それらは正常に抽出されますが、文字列を使用すると、初期化されていない文字配列から空白スペースとガベージが得られます。null 文字を無視して文字配列に文字を抽出する方法などのアイデア。

編集:

char fName[15],lName[15],pMethod[5],roomType[10],purpose[15];

int days, roomNum;

long guestID;

datafile>>guestID;
datafile.getline(fName,15,'\0');
datafile.getline(lName,15,'\0');

cout<<guestID<<endl;
cout<<fName<<endl;
cout<<lName<<endl;

残念ながら、私が現在使用しているコードは、fName が再び null 以外のものを取得しておらず、lName が fName の文字列値を取得していることです。数値を文字列として取得して変換することを考えていました。

4

4 に答える 4

4

std::getline'\n'区切り文字 (デフォルトでは ) であるオプションの引数があります。

于 2010-11-01T17:19:37.427 に答える
4

(ヌル文字) を区切り文字として使用getlineして渡します。\0

于 2010-11-01T17:19:49.673 に答える
0

http://www.cplusplus.com/reference/iostream/istream/read/ファイルを一度にバッファに読み込み、そこから先に進みます。

于 2010-11-01T22:57:25.270 に答える
-1

バイト全体をループし、ヌル文字バイトを無視します。

于 2010-11-01T17:21:17.740 に答える