24小时热门版块排行榜    

查看: 3571  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

meatball1982

铜虫 (小有名气)

[求助] 用C读取xyz文件的坐标信息

有一个由pdb转成的xyz文件。
如图,我想用C将其中的坐标信息提取出来,存在一个新的文件或是数组当中。

7.688102   -2.282595    2.994640
7.303011   -1.469669    3.647740
…………
7.158374    3.922640   -0.572473

只能用C。其实用awk或其它的很容易实现。但这部分最后可能会在一个大的C当中,所以只能用C。

我的思路是每次读入一行,进行判断。但如何判断我还没有想好。因为每行的信息长度不同。

现在有其它的工作,比较着急。非常感谢。

要求,程序要有程序说明和相应的注释。用C读取xyz文件的坐标信息
捕获.GIF
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : diala.xyz
  • 2013-06-26 13:59:40, 1.41 K

» 猜你喜欢

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

唉。还是学吧。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaochong8693

木虫之王 (文坛精英)

祝楼主诸事顺利,万事如意
4楼2013-06-26 18:11:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

绿遍山原

铜虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-06-27 00:33:56
只要坐标就只读每行前四列:
比如
fgetl(line, LINE_MAX, fp);
int n = sscanf(line, "%s %lg %lg %lg", name, &x, &y, &z);
if (n < 4) error("Invalid input"
要夢遊,不要催眠。
2楼2013-06-26 15:17:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by 绿遍山原 at 2013-06-26 15:17:39
只要坐标就只读每行前四列:
比如
fgetl(line, LINE_MAX, fp);
int n = sscanf(line, "%s %lg %lg %lg", name, &x, &y, &z);
if (n < 4) error("Invalid input"

绿遍山原:
您好。
1.能把整个程序写出来吗?
2.我查了一下,查到的fgetl都是matlab中的函数,这是一个C函数吗?
非常感谢。
唉。还是学吧。
3楼2013-06-26 17:41:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

绿遍山原

铜虫 (小有名气)

引用回帖:
3楼: Originally posted by meatball1982 at 2013-06-26 17:41:10
绿遍山原:
您好。
1.能把整个程序写出来吗?
2.我查了一下,查到的fgetl都是matlab中的函数,这是一个C函数吗?
非常感谢。...

是c的函数
要夢遊,不要催眠。
5楼2013-06-26 22:30:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见