我正在从文件中读取数据,我只需要从下面的数据中提取整数。我该如何完成它?感谢。
我的输入将是field6,我需要删除这些字符“];”并将其存储在整数变量中。
我的代码: -
field6 = strtok(NULL," ");
if (isdigit(field6))
{
weight = atoi (field6);
printf("%d\n",weight);
}
输入:
43];
2];
4];
16];
25];
输出:
43
2
4
16
25
答案 0 :(得分:0)
尝试
field6 = strtok(NULL,"\n");
weight = atoi (field6);
printf("%d\n",weight);
这是一种罕见的情况,其中atoi完全符合您的需要。
未检测到的错误情况是“];”这将被解释为零。
答案 1 :(得分:-1)
没有sscanf然后:
#include <stdio.h>
int main(int argc, char** argv)
{
const char *test = "123];";
int i = 0;
const char *p = test;
while (*p && isdigit(*p))
{
if (p != test) i *= 10;
i += *p - '0';
++p;
}
if (*p != ']')
{
// we have an error!
return 1;
}
printf("%i\n", i);
}