从文件中读取定界符之间的数字

我必须从一个文件中读出用顺式或不同的符号分隔的数字,比如下面。

(58) [787″ {91} (-66]

在数字和它们的分隔符之间总是有一个空格.目前所做的是这样的。

fgets(line, MAXLINE, source.txt)
line[strlen(line) - 1] = '\0';
value = strtok(line, " ");
while(value != NULL)
{
    nr = 0;
    for(i = 1; i < strlen(value) - 1; i++)
        nr = nr * 10 + value[i] - '0';
    value = strtok(NULL, " ");
}

遗憾的是,我的方法对负数和小数不起作用. 我怀疑有更好的方法可以用regex来实现. 你的帮助将非常感激.

解决方案:

由于你 读数,你可以把检查是否有数字的工作留给文件读取和转换功能。这个例子可以找到标准输入流中的所有数字。

#include <stdio.h>

int main()
{
    float number;
    do  switch (scanf("%f", &number))   // try to read a number
        {
        case 0: getchar();  break;      // failure - skip character
        case 1: printf("%f\n", number); // success - print number
        }
     while (!feof(stdin));
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

Highchartr: 同步点、线的颜色和图例

2022-9-8 21:49:37

未分类

如何使用javacsript动态创建一个json文件。

2022-9-8 21:49:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索