我有一个文件在这我想看看这个序列的字节:0xFF,0xD8、0xFF和0xE0。 现在,让我们假设我只是在寻找0xFF。 我做了这个程序,用于测试:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void analyzeFile(char* filename)
{
FILE* filePtr = fopen(filename, "rb");
int numImages = 0;
while (!feof(filePtr))
{
char bytes;
bytes = getc(filePtr);
printf("%c", bytes);
if ((bytes == 0xFF))
{
numImages++;
printf("image found!\n");
}
}
printf("%d\n", numImages);
}
这不是工作。 当我叫analyzeFile用参数"test.txt",它打印文件的内容出现,但没有检测到一个单一的0xFF字节:
的内容test.txt:
aÿØÿÿà1234
输出:
aÿØÿÿà1234
0
对于参考,0xFF相当于y-diaeresis,ÿ,根据ASCII。
(char)bytes
作为一个参数printf
没用? 它将得到转换回来int
通过默认的促销活动。