2015-11-07 79 views
0

我是編程新手,幾個小時以來一直在努力解決這個問題,而且似乎無法在任何地方找到我正在尋找的內容。如何從固定寬度的輸入文本文件讀取多行?

我想我的程序從類似於下面的輸入文件讀取(每個點代表一個空格):

Last................First...............OtherText 

從文件,我想讀的第一個字符串後無視一切,然後重新開始,只讀取中間的字符串,然後重新開始,只准備最後一串文本。

我已經嘗試了本使用忽略功能,並發現復位忽略功能在文件的開始,每次重新開始的無成功之路:

inputFile1.ignore(0) >> lastName; 
inputFile1.ignore(20) >> firstName; 
inputFile1.ignore(49) >> transactionDate; 

缺少什麼我在這裏?

回答

0

解決

對於任何人誰可能會遇到這個問題,用於提取固定的列寬的文本文件的特定部分的解決辦法是「修剪」使用SUBSTR需要的地區。我工作的代碼如下所示:

getline (inputFile1, inputLine1);    // Retrieve the row 
lastName = inputLine1.substr(0,20);    // Extract columns 
firstName = inputLine1.substr(20,20); 
transactionDate = inputLine1.substr(49,10); 

相關聯的SUBSTR第一個數字代表你想列忽略,第二個數字表示你希望檢索的列。

相關問題