从文件中的一行读取特定数据-C ++

我有一个.txt文件,其划分如下:

(P1,3): (E10,E20,E1,E3)
(P2,2): (E10,E2,E5)
(P3,E20)

我只想将每行的数字保存在数组中。例:第一个是[1,3,10,20,1,3]。我该怎么办?

epigram 回答:从文件中的一行读取特定数据-C ++

使用ifstream逐行读取文件。

在字符串读取为std :: string的情况下,使用regex search查找新读取的字符串中数字的出现。

要用于提取字符串中所有数字的正则表达式如下:

https://regex101.com/r/yWJp5p/3

用法示例:

https://rest.ensembl.org/vep/human/hgvs/chr2:g.10216G>T?CADD=1
,

有多种解决方案。解释其中一种解决方案。

使用C的isDigitstrtol函数。

char *str = "(P1,3): (E10,E20,E1,E3)",*p = str;
while (*p) {
    if ( isdigit(*p)) {
        long val = strtol(p,&p,10); 
        printf("%ld\n",val);
    } else {
        p++;
    }
}

注意:如果文件中包含负数,则需要检查该数字。

只需在if条件中添加((*p=='-'||*p=='+') && isdigit(*(p+1)))

本文链接:https://www.f2er.com/3169873.html

大家都在问