从文件中读取。 C

时间:2016-03-04 13:04:55

标签: c file char symbols fgetc

我想用1A 98阅读此符号(我无法复制,link to file.txt

此文件长度为2个字节,其二进制转储为fgetc()

-1无法阅读并返回for (int k = 0; k < fileSize; k++) { buffer[k] = (unsigned char) fgetc(f); } 。请帮忙((

{{1}}

此符号的图片:
Picture of this symbols

也许有字符编码的东西?

1 个答案:

答案 0 :(得分:1)

您的文件包含0x1A,这意味着在文本模式下打开文件时,EOF和读取将停止读取。

尝试以二进制模式打开文件。

这是一个测试代码:

#include <stdio.h>

int main(void) {
    const char *fileName = "codeText.txt";
    FILE* fp;
    int input;

    fp = fopen(fileName, "r");
    if (fp==NULL) return 1;
    puts("text mode:");
    while((input = getc(fp)) != EOF) printf("%02X\n", (unsigned int)input);
    fclose(fp);

    fp = fopen(fileName, "rb");
    if (fp == NULL) return 1;
    puts("binary mode:");
    while((input = getc(fp)) != EOF) printf("%02X\n", (unsigned int)input);
    fclose(fp);

    return 0;
}