相关疑难解决方法(0)

读写二进制文件

我正在尝试编写代码将二进制文件读入缓冲区,然后将缓冲区写入另一个文件.我有以下代码,但缓冲区只存储文件中第一行的几个ASCII字符,没有别的.

int length;
char * buffer;

ifstream is;
is.open ("C:\\Final.gif", ios::binary );
// get length of file:
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);
// allocate memory:
buffer = new char [length];
// read data as a block:
is.read (buffer,length);
is.close();

FILE *pFile;
pFile = fopen ("C:\\myfile.gif", "w");
fwrite (buffer , 1 , sizeof(buffer) , pFile );
Run Code Online (Sandbox Code Playgroud)

c++ binary buffer file

94
推荐指数
5
解决办法
24万
查看次数

应该使用字节缓冲区来签名还是使用unsigned char缓冲区?

字节缓冲区应该是char或unsigned char还是char缓冲区?C和C++之间有什么区别?

谢谢.

c c++ buffer char

54
推荐指数
5
解决办法
2万
查看次数

从无符号转换为C中的signed char

我正在将输入raw pcm流转换为mp3使用lame.该库中的编码函数返回mp3类型数组中的编码样本unsigned char.这个mp3编码的流现在需要放在一个flv容器中,该容器使用一个在char数组中写入编码样本的函数.我的问题是我将数组从lame(类型unsigned char)传递到flv库中.以下代码(仅符号)说明了我的问题:

/* cast from unsigned char to char. */

#include <stdio.h>
#include <stdlib.h>

void display(char *buff, int len) {

  int i = 0;
  for(i = 0; i < len; i++) {
    printf("buff[%d] = %c\n", i, buff[i]);
  }
}

int main() {

  int len = 10;
  unsigned char* buff = (unsigned char*) malloc(len * sizeof(unsigned char));
  int i …
Run Code Online (Sandbox Code Playgroud)

c casting char unsigned-char

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

buffer ×2

c ×2

c++ ×2

char ×2

binary ×1

casting ×1

file ×1

unsigned-char ×1