我有一堆基于ASCII的文本文件,用作各种计算机程序的输入文件,我需要将它们转换为不同的格式。每个输入文件以4位数字开头,然后如果前四位数字以0开头(数字0),则后面跟随其他输入数据或注释行。我正在开发一个基于C++的文件转换器,我希望它读取四位数的数字,如果这个数字在它后面的注释行中读取为零。下面提供了一个例子。 C++可以很容易地读取数组或通过使用std :: vector;然而读取字符串会变得复杂得多。首先,如果每条评论行的单词数量相同,我可以将每个字符串视为在固定列中填充自己的行,但由于每条评论行的单词数量不同,因此需要的列数在每一行读入会有所不同。有没有一种简单的方法来阅读注释行,C++不会将每个单词之间的空格视为一列数据的末尾和另一列的开头?通用数字和数据用于下面的文件示例中,但希望您可以看到以0开头的注释行跟随它们的单词数量不同,因此无法将该文件作为严重的数据列读取。用C++读取各种长度的多个文本字符串
0001 Input File Name
0001 - Description of input file goes here
0001 - PROGRAM name that works on this data
0000 ==========================================
0001 List of references used in the development of this input file
0001 [1] Ref. 1
0001 [2] Ref. 2
0001 [3] Ref. 3
1100 Input line 1: CBRD 1-0220
1101 Core Length (mm): 8.189
1102 Core diameter (mm): 37.81
请缩短_story_,加上实际_codes_你的努力和你的_relevant_问题 – P0W 2014-11-20 17:59:11
你可以用'的std ::函数getline()'读取整条生产线。 – SHR 2014-11-20 18:05:27
将字符串读入字符串,然后根据您的规则解析字符串。试图让一个文件阅读器成为一个解析器(就像你试图做的那样)过于复杂。 – PaulMcKenzie 2014-11-20 18:14:03