从文件中读取。 C
reading from a file . C
我想用fgetc()
读取这个符号(我不能复制它,这里是link to file.txt)
此文件长 2 个字节,其二进制转储为 1A 98
。
fgetc()
看不懂而且 return -1
。请帮忙((
for (int k = 0; k < fileSize; k++)
{
buffer[k] = (unsigned char) fgetc(f);
}
这个符号的图片:
也许有字符编码?
您的文件包含 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;
}
我想用fgetc()
读取这个符号(我不能复制它,这里是link to file.txt)
此文件长 2 个字节,其二进制转储为 1A 98
。
fgetc()
看不懂而且 return -1
。请帮忙((
for (int k = 0; k < fileSize; k++)
{
buffer[k] = (unsigned char) fgetc(f);
}
这个符号的图片:
也许有字符编码?
您的文件包含 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;
}