将字符串转换为整数的更好方法

时间:2015-05-08 02:34:01

标签: c

我写了这段代码来读取.txt文件中的变量,忽略第一个字符并转换成整数。它工作但看起来很笨,有没有更好的方法呢?我在这里只使用一个字符串,但它应该与四个一起使用。

1                                                   2
--------------------------------------------------- ---------------------------------------------------
x'4B5753313032353039313133392020202020202020202020' x'4B5753313032353039313230302020202020202020202020'

  1 record(s) selected.

1 个答案:

答案 0 :(得分:3)

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    const char filename[] = "file.txt";
    FILE *fp = fopen(filename, "r");
    if (fp == 0)
    {
        fprintf(stderr, "Failed to open file %s for reading\n", filename);
        return(EXIT_FAILURE);
    }

    int value;

    if (fscanf(fp, "%*c%d", &value) != 1)
    {
        fprintf(stderr, "Failed to read integer value from file %s\n", filename);
        fclose(fp);
        return EXIT_FAILURE;
    }

    printf("Read %d\n", value);
    fclose(fp);

    return 0;
}

%*c读取单个字符但不指定它。限制分配的*scanf()中的一般机制 功能系列。

未经测试的代码。