2016-05-31 3 views
-4

Мне нужно написать n чисел байтов в двоичном файле на C, как я могу его написать? Все байты должны быть 0.Напишите байт 0 в двоичном файле в C

Я пишу char, но я не знаю, правильно ли это.

int i; 
for(i=0; i < 200; i++){ 
    fwrite(0, sizeof(char), 1, file); 
} 
+3

чтения: http://en.cppreference.com/w/c/io/fwrite –

ответ

3

Первый аргумент fwrite должен быть действительным указателем.

Вы можете использовать fputc написать непосредственный символ (байт) в файл, например так:

int i; 
for(i=0; i < 200; i++){ 
    fputc(0, file); 
} 
1

Необходимо указать буфер, содержащий данные для записи. В вашем случае вы можете сохранить '\ 0' в переменной char и передать свой адрес.

char c = 0; 
int i; 
for (i = 0; i < 200; i++) 
    fwrite(&c, sizeof c, 1, file); 

Другой (более эффективно) решение создать буфер 200 элементов непосредственно:

char buff[200] = {0}; // declare array with 200 '\0' bytes 
fwrite(buff, 1, 200, file);