c - 从文本文件中读取十六进制并将其拆分为C程序

标签 c

我正在读取十六进制文本文件,但我想将其拆分为两位数?

#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/

相关文章:

c - Scanf 在 C 中跳过每隔一个 while 循环

c - Alpha beta 修剪根移动

python - 由于使用 PyArray_ENABLEFLAGS 导致 Jupyter 崩溃

有人可以解释这两个问题的解决方案(c 程序,互斥体,线程)吗?

创建多个子进程并运行execvp

c - 使用 C 编程的 Linux 管道。通过管道重定向输入/输出

c - printfs 系列中的第一个 printf() 发生故障,返回不可预测的结果

Program.exe 中的 c++ : Unhandled exception at 0x57B4B2CE (msvcr120d. dll):0xC0000005:读取位置 0xCDCCDC8 访问冲突

C - ‘sizeof’ 对不完整类型 ‘struct ipheader’ 的无效应用以及其他错误

C初学者: Need explanation of error messages from "ideone"