タイトルと著者のリストを含むファイルを読み込もうとしていますが、ファイル内の各行を区切る改行文字を無視できる必要があります。リスト形式のファイルを読むときに改行文字を無視する方法
利己的な遺伝子
リチャード・ドーキンス
Aすばらしい新世界
オルダス・ハクスリー
:
は例えば、私の.txtファイルには、このようなリストを持っているかもしれません太陽はまた上昇する
アーネスト・ヘミングウェイ
私はこの情報を保存するために、並列配列を使用する必要があり、その後、そのようなデータをフォーマットすることができる:
利己的な遺伝子(リチャード・ドーキンス)
私がしようとしていましたデータを読むためにのgetlineを使用しますが、私はタイトルと著者をフォーマットする行くとき、私はこれを取得する:
利己的な遺伝子
(リチャード・ドーキンス
)私はファイルからリストに読んだとき、私は改行文字を無視するにはどうすればよい
?これは私がこれまで持っているものです。
int loadData(string pathname)
{
string bookTitle[100];
string bookAuthor[100];
ifstream inFile;
int count = -1; //count number of books
int i; //for variable
inFile.open(pathname.c_str());
{
for (i = 0; i < 100; i++)
{
if(inFile)
{
getline(inFile, bookTitle[i]);
getline(inFile, bookAuthor[i]);
count++;
}
}
inFile.close();
return count;
}
私は非常に任意の助けに感謝します!
リチャード
EDIT:
これは私の出力機能である:
void showall(int count)
{
int j; //access array up until the amount of books
for(j = 0; j < count; j++)
{
cout << bookTitle[j] << " (" << bookAuthor[j] << ")";
cout << endl;
}
}
私はここで間違って何かをやっていますか?
'getline'は改行文字を削除する必要があります。おそらくあなたはUNIXマシン上でDOSファイルを使用していますが、復帰文字は改行されて改行として解釈されていますか? – Potatoswatter
このコードは、 'std :: getline'のどちらかの呼び出しが失敗すると悪く動作します。ちょうどFYI。 –
http://stackoverflow.com/questions/1581539/how-to-identify-a-new-line-in-c –