我正在读取十六进制文本文件,但我想将其拆分为两位数?
#include <studio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
void main() {
char hexa[100];
FILE *fp = fopen ("data2.txt", "r+");
fscanf(fp, "%s", hexa);
printf("\n first data = %s \n", hexa);
printf("\n first digit= %s \n", hexa[1]);
printf("\n second digit= %s \n", hexa[2]);
fclose(fp);
}
我成功读取文件,但结果是:
first data = 16
segmentation fault
最佳答案
hexa[1]
和 hexa[2]
是字符,但您将它们打印为字符串(即字符数组)。由于它们的范围是 0-255,并且此范围的内存无法访问,因此您会崩溃。
这样做:
printf("\n first digit= %c \n", hexa[1]);
等等。
关于c - 从文本文件中读取十六进制并将其拆分为C程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36536421/