gpt4 book ai didi

c - 使用 fread 从 .txt 文件中读取 unsigned char 给出不同的值

转载 作者:太空宇宙 更新时间:2023-11-04 01:58:26 28 4
gpt4 key购买 nike

我截取了以下代码以从 .txt 文件中读取 16 个无符号字符值。

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

int main()
{

int i, j, k, load_size;
unsigned char *buf;
load_size = 16;
buf = (unsigned char *)malloc(load_size);
FILE *fin;
fin = fopen("demo_input1.txt", "r");
fread(buf, 1, load_size, fin);
for(i=0;i<16;i++){
printf("%d ", *buf);
buf++;
}
system("PAUSE");


}

文件“demo_input1.txt”包含值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16。但是我在控制台值中得到输出 49 32 50 32 51 32 52 32 53 32 54 32 55 32 56 32。任何人都可以告诉我这里出了什么问题来帮助我吗?谢谢

最佳答案

fread 用于读取原始输入。由于您的文件是格式化文本,请使用以下内容:

int nums[SIZE];
int count = 0;
while( fscanf(fin, "%d", nums + count) == 1 ) {
if(++count == SIZE) break; /* More than expected numbers in file */
}

稍后您可以使用以下方式打印:

for(i = 0; i < count; i++) {
printf("%d ", nums[i]);
}

fscanf 是一种从文件中读取格式化输入的方法。您可以使用 malloc游走指针,如原始代码片段中所示或根据您的要求。

关于c - 使用 fread 从 .txt 文件中读取 unsigned char 给出不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30498271/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com