24小时热门版块排行榜    

查看: 1452  |  回复: 12

xiaomm09

金虫 (小有名气)

[求助] 请教一个C++读文件的问题,

最近用C++写一段读文件的代码,遇到2个问题:
1)如果开头的几行不需要读写,该怎么跳过?
2)如果文件的格式固定(见附件),每行中的数字占的宽度一样,如
AAAA           1       09.0000003.000000     0.0       0               0        
AAAA           2       012.00000          0.0     0.0       0               0        
AAAA           3       06.000000          0.0     0.0       0               0
上面几行,每一行8个数字,但第3、4、5个数字中间无空格,即连在一起,该怎么处理?以第一行为例,8个数字分别为 AAAA             1       0    9.000000   3.000000     0.0       0         0。
这个问题困扰了好几天了,请大家指教,先谢谢了,
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

追求完美!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

heyzol

金虫 (正式写手)

请教一个C++读文件的问题,

如果想跳过n行的话,执行n次getline就行了
小木虫:沙发+99,金币+99,恭喜抢个沙发,再给个红包
9楼2013-11-27 14:28:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cjc5367

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
开头几行不读写:设置一个计数变量,每读一行加一,当到指定行数时读写
2楼2013-11-26 22:43:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaomm09

金虫 (小有名气)

引用回帖:
2楼: Originally posted by cjc5367 at 2013-11-26 22:43:49
开头几行不读写:设置一个计数变量,每读一行加一,当到指定行数时读写

谢谢。
第一个问题好像原来讨论过,就是让这几行跑空。

第二个问题呢,有好的方法吗?
追求完美!
3楼2013-11-26 23:04:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

cjc5367

铁虫 (小有名气)

【答案】应助回帖

如果数据的宽度一样,第二个问题可以先把每行读取完后,存放为一个string类型,再对其进行split,再对split后的第三个数据进行substring读取
4楼2013-11-26 23:12:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaomm09

金虫 (小有名气)

引用回帖:
4楼: Originally posted by cjc5367 at 2013-11-26 23:12:00
如果数据的宽度一样,第二个问题可以先把每行读取完后,存放为一个string类型,再对其进行split,再对split后的第三个数据进行substring读取

谢谢,
暂时也是这样处理的,strg.substr(0, 7)。。。。
好像不能像fortran那样的切片功能?直接strg[0:7],strg[8:15].。。
用read,write 或指针 这些功能 是不是会更好些?
追求完美!
5楼2013-11-26 23:20:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cjc5367

铁虫 (小有名气)

引用回帖:
5楼: Originally posted by xiaomm09 at 2013-11-26 23:20:44
谢谢,
暂时也是这样处理的,strg.substr(0, 7)。。。。
好像不能像fortran那样的切片功能?直接strg,strg.。。
用read,write 或指针 这些功能 是不是会更好些?...

很长时间不用c++了,具体string的函数都忘了,能解决就行啊
6楼2013-11-26 23:44:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nlyang

禁虫 (著名写手)

感谢参与,应助指数 +1
本帖内容被屏蔽

7楼2013-11-27 09:02:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaomm09

金虫 (小有名气)

引用回帖:
7楼: Originally posted by nlyang at 2013-11-27 09:02:03
这真的是一个非常简单的问题,呵呵。
第一个问题就是直接路过,用一个for循环即可。
至于第二个问题,其实就是一个处理规则的问题,从你所给出的文件来看,3,4,5的三个数字,似乎有时候粘在一起,有的时候又没有 ...

楼上说的对,3、4、5的三个数字,有时候粘在一起,有的时候又没有在一起,但不管如何,每个数字占的宽度都一样,即8位。
数据处理完后,会输出到文本中。

具体如何操作?
追求完美!
8楼2013-11-27 10:01:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nlyang

禁虫 (著名写手)

本帖内容被屏蔽

10楼2013-11-27 21:28:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiaomm09 的主题更新
信息提示
请填处理意见