我正在用 C 编写一个程序,我正在读取一个文本文件fread
,但我无法正确读取整数。
文本文件中的值为a
16,我得到的输出是:
a= 538976288
我使用了成功读取二进制文件的类似代码。我想了解在 c 中读取 ASCII 表的最佳方法是什么。
表格大小由文件顶部的整数给出。数据以空格分隔。
这是我写的简单代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
int a, flag_fread;
FILE * p_finput = NULL;
char * filename = NULL;
filename = malloc(sizeof(char) * (strlen(argv[1]) + 1));
strncpy(filename, argv[1],strlen(argv[1]));
filename[strlen(argv[1])] = '\0';
p_finput = fopen(filename, "r");
if (p_finput == NULL)
{
printf("couldn't open %s \n", filename);
abort();
}
flag_fread = fread(&(a), sizeof(int), 1, p_finput);
printf("a= %d \n", a);
fclose(p_finput);
free(filename);
return 0;
}