Доброго дня! Как добавить всю строку в конец файла? На данный момент программа считает до первого пробела в передаваемой строке

Проблема во второй части программы, а именно в строке fprinf(); Почему-то она не записывает в файл полностью строку со всеми пробелами. Она записывает первое слово до пробела, а потом исполняется заново, с новой строки записывает второе слово и так обрабатывает каждый пробел? а нужно просто добавить строку в конец файла с новой строки.

    #include <stdio.h>
//  void read_file();

int main() {
    int a;
    char file_name[300];
    char ch;
    FILE *file;
    char text[300];
    while (a != -1) {
        scanf("%d", &a);
        if (a == 1) {
            
            scanf("%s", file_name);
            file = fopen(file_name, "r");
            if (file == NULL) {
                printf("n/a\n");
            } else {
                ch = fgetc(file);
                    if (ch != EOF) {
                        while (ch != EOF) {
                            putchar(ch);
                            ch = fgetc(file);
                            }
                        printf("\n");
                 } else {
                    printf("n/a\n");
                    }
                }
                fclose(file);
            }
        if (a == 2) {
            file = fopen(file_name, "r");
            if (file == NULL) {
                printf("n/a\n");
                fclose(file);
                continue;
            }
            file = fopen(file_name, "a+");
                scanf("%s", text);
                fprintf(file, "\n%s", text);
                fclose(file);
                file = fopen(file_name, "r");
                ch = fgetc(file);
                    if (ch != EOF) {
                        while (ch != EOF) {
                            putchar(ch);
                            ch = fgetc(file);
                            }
                        fclose(file);
                        printf("\n");
                 }
        }
    }
}

Ответы (0 шт):