我写了这段代码来读取.txt文件中的变量,忽略第一个字符并转换成整数。它工作但看起来很笨,有没有更好的方法呢?我在这里只使用一个字符串,但它应该与四个一起使用。
1 2
--------------------------------------------------- ---------------------------------------------------
x'4B5753313032353039313133392020202020202020202020' x'4B5753313032353039313230302020202020202020202020'
1 record(s) selected.
答案 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()
中的一般机制
功能系列。
未经测试的代码。