我有一个整数文件。我想将这些整数作为字符(它的 ascii 编号)写入缓冲区。因为它是一个更大项目的一部分,所以请不要发布不同的内容,但请帮助我。我特别需要的是将字符存储在 char * 类型的缓冲区中。
这些是我的声明。
FILE *in;
long io_len = 1000;
char * buffer;
in=fopen("input.txt","a+");
buffer = malloc(io_len * sizeof(*buffer));
if(buffer == NULL){
perror("malloc");
exit(EXIT_FAILURE);
}
我正在找出2个解决方案。
如果我写这个:
read_ret = read(in, buffer, io_len);
它从文件中读取 io_len 个字节并将它们存储在缓冲区中。但它读取字符。因此,例如,如果我写 123,它将写入缓冲区 1、2、3,而不是 ascii 编号为 123 的字符。
所以我这样做了:
while((fscanf(in,"%d", &i))==1){
printf(": %d\n", i);
}
它读取我想要的整数。现在我对如何将它们作为字符存储在缓冲区中有些困惑。我已经尝试过了,但它给我带来了分段错误。
while((fscanf(in,"%d", &i))==1){
printf(": %d\n", i);
buffer=(char) i;
printf("Character in Buffer:%s\n",buffer);
buffer++;
}
请记住,稍后在我的文件中,我将缓冲区写入其他地方,所以无论我做什么,我都希望指针位于我的 char 数组的开头(如果我所说的有意义的话)