2015-11-07 41 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第一个数字代表你想列忽略,第二个数字表示你希望检索的列。

相关问题