我試圖讀取帶有標題和作者列表的文件,而且我需要能夠忽略文件中每行分隔的換行符。如何在列表格式中讀取文件時忽略換行符
例如,我的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;
}
我非常感謝任何幫助!
理查德
編輯:
這是我的輸出功能:
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'失敗,則此代碼行爲不佳。僅供參考。 –
查看http://stackoverflow.com/questions/1581539/how-to-identify-a-new-line-in-c –