Мои две переменные являются 32-разрядными целыми числами без знака. Не уверен, почему это не работает:
// Arguments: output_file how_many_mb
int main(int argc, char * argv[])
{
uint32_t pattern, counter;
int i, count;
counter = 1;
sscanf(&counter, "%x", &pattern);
FILE * outFile = fopen(argv[1],"wb");
int times = atoi(argv[2]);
count = 0;
times = times*1048576; // Write out 4bytes at a time
for (i = 0; i < times; i++) {
fwrite(&pattern, 1, 1, outFile);
counter<<=1;
sscanf(&counter, "%x", &pattern);
count++;
if (counter == 0) {
sscanf("00000000", "%x", &pattern);
if (count < 100)
printf ("Reached the condition %0x \n", pattern);
counter = 1;
}
if (count < 100)
printf ("%x\n", pattern);
}
fclose (outFile);
}
Я пытаюсь "записать" шестнадцатеричный шаблон в файл. Я бита счетчика сдвига, а затем записать его в шаблон как шестнадцатеричный. Это утверждение вызывает у меня проблемы. Созданный файл содержит мусор.
Спасибо.