可视化从文本C++中提取字符串数据

visual Extracting string data from text C++

本文关键字:提取 字符串 数据 C++ 文本 可视化      更新时间:2023-10-16

我目前正在编写一个c++程序,该程序需要从文本文件中提取字符串和数字数据。数据的格式如下:;

3225 C9+     ELECTR  C8      C        *      1.00E-6  -0.30       0.0

第一个条目是一个整数,接下来的5个条目是字符串,最后的3个条目是浮点值。任何字符串的长度都不能超过7个字符。

我正在逐行读取文件,然后使用提取数据;

sscanf(ln.c_str(),"%d  %s  %s  %s  %s  %s  %e  %e  %e",
&rref[numre],&names[numre][0],&names[numre][1],&names[numre][2],&names[numre][3],
&names[numre][4],&nums[numre][0],&nums[numre][1],&nums[numre][2]);

这很好,直到我遇到这样的线条;

  3098 SIC2H3+ ELECTR  SIC2H2  H        *      1.50E-7  -0.50       0.0

其中一个入口是完整的7个字符长。在这种情况下,我得到;

names[3097][0] = "SIC2H3+ELECTR"

和,

names[3097][1] = "ELECTR"

任何人都有任何想法。。。他们将不胜感激!!

最可能的问题是names的声明:如果您声明它包含7个或更少的字符,并且忘记为终止零分配空间,那么您将得到所描述的结果。

char names[MAX][4][7]

将具有足够的空间用于长度为6或更小的字符串;对于长度为7的字符串,您需要

char names[MAX][4][8]