gpt4 book ai didi

c++ - 通过 sscan f 写入十六进制模式

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:04 25 4
gpt4 key购买 nike

我的两个变量都是 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);
}

我实际上是在尝试将十六进制模式“写入”文件。我将计数器移位,然后将其写入十六进制模式。那是给我带来问题的陈述。创建的文件本质上包含垃圾。

谢谢。

最佳答案

您没有正确使用 sscanf(请参阅 http://www.cplusplus.com/reference/clibrary/cstdio/sscanf/)

int32_t counter;
const char * pattern = "badf00d";
sscanf(pattern, "%x", &counter);

关于c++ - 通过 sscan f 写入十六进制模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com