gpt4 book ai didi

c++ - 在未格式化的输出中打印出来 C++

转载 作者:行者123 更新时间:2023-11-28 00:51:55 25 4
gpt4 key购买 nike

我正在创建霍夫曼树,我想在未格式化的输出中打印出每个字母的频率。但是,我的问题是我无法打印任何东西。这是我的过程:

char c;
unsigned int freqArray[256];
unsigned int valueShifted[256];

while (!cin.eof())
{
c = cin.get();
freqArray[(int)c]++;
} //mapping my frequency array to the letter it sees


void shifting(unsigned int *freqArray, unsigned int *valueShifted)
{
for(int i = 0; i < 256; i++)
{
if(freqArray[i] > 0)
{
valueShifted[i] = (freqArray[i] << 24) | ((freqArray[i] << 8) & 0x00ff0000) | ((freqArray[i] >> 8) & 0x0000ff00) | (freqArray[i] >> 24); // shifting of bits
}
}


shifting(freqArray, valueShifted);
for(int i = 0; i < 256; i++)
{
if(valueShifted[i] > 0)
{
cout.write((char*)&valueShifted[i], sizeof(valueShifted[i])); //this is not printing anything
}
}

可能有人知道为什么这不打印任何东西吗?我猜我的错误可能是因为我没有以十六进制打印出来,但我不完全确定......如果有人能提供帮助那就太好了!谢谢!

最佳答案

您想输出数组中的每个unsigned int吗?

cout << valueShifted[i];

write 是低级别的写入。对于您的示例,您需要使用二进制编辑器来查看您正在编写的值。根据您的终端和数据内容,将二进制数据转储到 stdout 可能会导致打印出垃圾信息,或者什么都不打印。

关于c++ - 在未格式化的输出中打印出来 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13653070/

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