मैं एक फाइल में है जो मैं कर रहा हूँ देखने के लिए कोशिश कर के लिए इस बाइट्स का अनुक्रम: 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
बेकार है? यह मिल जाएगा casted वापस करने के लिएint
डिफ़ॉल्ट रूप से प्रचार करें.