【发布时间】:2011-10-09 13:02:30
【问题描述】:
我想将仅由零和一组成的字符串写入输出文件,其中输出文件实际上只包含字符串给出的顺序中的零和一。
目前我正在尝试将字符写入 1 位
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *out_file;
out_file = fopen("out", "wb");
char s[] = "01010101010101010101"; /*20 chars*/
int i;
for (i = 0; i < 20; i++) {
fwrite(&s[i], 1, 1, out_file);
}
fclose(out_file);
return EXIT_SUCCESS;
}
十六进制编辑器中的输出文件
30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31
因此,输出文件包含零和一的 ascii 值,而不是实际的零和一。
谢谢
【问题讨论】:
-
其实包含0和1:0x30 = 110000, 0x31 = 110001
-
但 0x30 是 0 的 ascii 值
-
我无法理解这个问题。你想写 (int)0 还是 (char)0?
-
我只希望输出文件包含零和一,而不是在 ascii 中只是按该顺序排列
标签: c file-io binaryfiles binary-data