我正在学习C++并被困在练习中。如何读取格式不正确的数据?比如,我给,我需要读取数据,看起来像这样的文件:如何在C++中读取格式不正确的输入数据?
1 z 2
1 xy 2
3 A 8000 E 1777 E 2001
的第一,第二和第三线构成一个“模块”。有许多模块的数据将通过键盘输入。我的程序必须接受用户的所有输入(直到用户决定输入“q”退出),然后读取该输入并操作数据。理想情况下,输入将被格式化正确像上面的例子,但有时数据将有额外的空格,制表符,回车或数据从以前的模块开始,像这样:
2 R 5001 E 4777 1 z 2 1 xy 2
3 A 8000 E 1777
E 2001
什么是最好的如何读取和处理格式不正确的输入数据?在这种情况下,我希望能够提取1 z 2
,1 xy 2
和3 A 8000 E 1777 E 2001
并将其存储在数组或某种类型的STL容器中,并且能够稍后使用此信息做些事情(例如基于数字的添加,减少或乘数在该号码前面是否有“A”,“S”或“M”)。
我的程序必须能够认识到Z和XY是变量和Z = 2和XY = 2
可能应该尝试使用正则表达式.. http://www.cplusplus.com/reference/regex/ –