如何从固定宽度的输入文本文件中读取多行?

时间:2015-11-07 07:05:55

标签: file text input width fixed

我是编程新手,现在几个小时一直在努力解决这个问题,似乎无法找到我在网上寻找的任何地方。

我希望我的程序从一个类似于以下内容的输入文件中读取(每个点代表一个空格):

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

从文件中,我想读取第一个忽略所有内容的字符串,然后重新开始并只读取中间字符串,然后重新开始并准备好最后一串文本。

我已经尝试使用ignore函数,并且没有找到重置ignore函数的成功方法,每次都在文件的开头重新开始:

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

我在这里缺少什么?

1 个答案:

答案 0 :(得分: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相关联的第一个数字表示您要忽略的列,第二个数字表示您要检索的列。