请你用c语言写一个函数,将int型数组中的数以8bit有符号二进制数的形式写入txt文件中。每个元素为一行。因为数的范围都在-128到正127范围内,所以8bit有符号二进制足够表示。例如36写入为00100100
时间: 2023-05-17 16:06:11 浏览: 64
以下是代码实现:
```c
#include <stdio.h>
void writeToFile(int arr[], int size, char* filename) {
FILE* fp = fopen(filename, "w");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return;
}
for (int i = 0; i < size; i++) {
fprintf(fp, "%d\n", arr[i]);
}
fclose(fp);
}
void writeBinaryToFile(int arr[], int size, char* filename) {
FILE* fp = fopen(filename, "w");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
return;
}
for (int i = 0; i < size; i++) {
char binary[9];
int num = arr[i];
if (num < 0) {
num = 256 + num;
}
for (int j = 0; j < 8; j++) {
binary[7-j] = (num & (1 << j)) ? '1' : '0';
}
binary[8] = '\0';
fprintf(fp, "%s\n", binary);
}
fclose(fp);
}
int main() {
int arr[] = {36, -64, 127, -128};
int size = sizeof(arr) / sizeof(arr[0]);
writeBinaryToFile(arr, size, "output.txt");
return 0;
}
```
这个程序会将给定的 int 数组中的每个元素以 8bit 有符号二进制数的形式写入到一个名为 "output.txt" 的文本文件中,每个元素为一行。如果元素为负数,则需要将其转换为对应的正数再进行二进制表示。
阅读全文