gpt4 book ai didi

c++ - 如何在 C++ 中将内存块读取为 char

转载 作者:行者123 更新时间:2023-11-30 03:12:39 26 4
gpt4 key购买 nike

你好,我有一 block 内存(使用 malloc() 分配),其中包含位(位字面量),我想将其作为 char 数组读取,或者,更好的是,我想打印出 ASCII内存连续8位的值。

我已将他的内存分配为 char *,但我无法以比评估每一位更好的方式取出字符,将值添加到 char 并将 char 的值左移,在一个循环中,但我一直在寻找更快的解决方案。谢谢

我现在写的是这样的:

分配:

char * bits = (char*) malloc(1);

写信给我:

ifstream cleartext;
cleartext.open(sometext);
while(cleartext.good())
{
c = cleartext.get();
for(int j = 0; j < 8; j++)
{ //set(index) and reset(index) set or reset the bit at bits[i]
(c & 0x80) ? (set(index)):(reset(index));//(*ptr++ = '1'):(*ptr++='0');
c = c << 1;
}..
}..

直到现在我还无法取回字符,我只能使用以下方法打印出这些位:

printf("%s\n" bits);

我正在尝试做的一个例子是:

input.txt 包含字符串“AAAB”

我的程序必须将“AAAB”作为“01000001010000010100000101000010”写入内存(是AAAB的位中的ASCII值是65656566位)

那么我希望它有一个功能,可以将内存中的内容重写到一个文件中。

因此,如果内存再次包含“01000001010000010100000101000010”,它将写入输出文件“AAAB”。

最佳答案

int numBytes = 512;
char *pChar = (char *)malloc(numBytes);
for( int i = 0; i < numBytes; i++ ){
pChar[i] = '8';
}

因为这是 C++,你也可以使用“new”:

int numBytes = 512;
char *pChar = new char[numBytes];
for( int i = 0; i < numBytes; i++ ){
pChar[i] = '8';
}

关于c++ - 如何在 C++ 中将内存块读取为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/655378/

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