请你用c语言写一段代码,将int型数组中的0到255的整数以8比特二进制数的形式写入指定txt文件中,一个元素换一行。
时间: 2023-08-31 19:40:10 浏览: 91
C.rar_instead5ss_尾递归_整数转为二进制数
### 回答1:
```c
#include <stdio.h>
int main() {
// 定义要写入文件的数组
int arr[256];
for (int i = 0; i < 256; i++) {
arr[i] = i;
}
// 打开要写入的文件
FILE* fp = fopen("output.txt", "w");
// 将数组中的整数以8比特二进制数的形式写入文件中,一个元素换一行
for (int i = 0; i < 256; i++) {
for (int j = 7; j >= 0; j--) {
int bit = (arr[i] >> j) & 1;
fprintf(fp, "%d", bit);
}
fprintf(fp, "\n");
}
// 关闭文件
fclose(fp);
return 0;
}
```
### 回答2:
#include <stdio.h>
void writeBinaryToFile(int arr[], int size, const char* filename) {
FILE* file = fopen(filename, "w");
if (file == NULL) {
printf("无法打开文件:%s\n", filename);
return;
}
for (int i = 0; i < size; i++) {
// 将数组元素转换为二进制字符串
char binary[9]; // 8位二进制数 + 1位结束符
for (int j = 0; j < 8; j++) {
binary[7 - j] = (arr[i] & (1 << j)) ? '1' : '0';
}
binary[8] = '\0'; // 字符串结束符
// 将二进制字符串写入文件
fprintf(file, "%s\n", binary);
}
printf("已将数组元素写入文件:%s\n", filename);
fclose(file);
}
int main() {
int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
int size = sizeof(arr) / sizeof(arr[0]);
writeBinaryToFile(arr, size, "output.txt");
return 0;
}
阅读全文