fwrite продолжает записывать нежелательный текст в мой файл - PullRequest
0 голосов
/ 01 марта 2019

Выходной текстовый файл должен содержать только содержимое word1, но другие вещи, которые находятся внутри моей функции записи, продолжают поступать туда, и я не уверен, почему.

Моя основная функция:

int main(){

unsigned long size4;
char* word1 = "Hellllooooooo";
char* file_namee = "test.txt";
file_write(size4, word1, file_namee);

exit(0); 
}

Вот моя функция записи файла:

int file_write(unsigned long size, char *output, char *file_name2){


FILE *file;

file = fopen(file_name2, "wb");
if(file == NULL){
    printf("Cannot open file");
}

fwrite(output, 1, size, file);


fseek(file, 0, SEEK_END);

size = ftell(file);
rewind(file);
return size;
}

Вот что он выводит и записывает в test.txt:

Hellllooooooo test.txt rb Cannot open file  wb Cannot 

Все после "Hellllooooooo"неожиданно, и я не уверен, почему это дает мне это.

1 Ответ

0 голосов
/ 01 марта 2019

Вы используете неинициализированную переменную.Этот параметр размера не требуется, если вы используете строки C.Пропустите его и:

fwrite(output, strlen(output), 1, file);

fwrite необходимо знать длину буфера, который может иметь различные формы, часто необработанные, поэтому параметр длины не может быть выведен.Вы должны предоставить его, но поскольку вы используете строки C, вы можете использовать strlen() для вычисления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...