整数を含むファイルがあります。これらの整数をchar(ASCII番号)としてバッファに書き込みたい。それはより大きなプロジェクトの一部であるため、別の投稿はしないでください。しかし、それについて私を助けてください. 私が特に必要としているのは、char * 型のバッファーに格納される 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 を書き込むと、ASCII 番号 123 の文字ではなく、バッファ 1,2,3 に書き込まれます。
だから私はこれをしました:
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配列の先頭に置きたいと思います(私が言っていることが理にかなっている場合)