Co moglbym zrobic, aby dzialalo poprawnie? (Czysty C, tablice znakow, pliki tekstowe)

0

Witam,
Mam zadanie, ze uzytkownik wpisuje N napisow, a ja mam te napisy wklepac do pliku tekstowego (kazdy w oddzielnej linijce, napis moze skladac sie z kilku wyrazow i nie moze przekraczac pewnej ilosci znakow MAX) i mam nastepujacy problem: te napisy moga byc ze spacja, ale jak pisze jakis napis np. dwuwyrazowy to mi to interpetuje jako dwa oddzielne napisy i wpisuje do pliku tekstowego kazdy wyraz w oddzielnej linijce, ktos cos poradzi?
Kod:

#include <stdio.h>
#include <string.h>
#define N 5
#define MAX 20
int main()
{
    int i, length;
    char tablica[100];
    FILE *plik;
    plik = fopen("Plik_do_zadania_nr_2.txt", "w");
    for(i=0; i<N; i++)
    {
        printf("Prosze podac %d napis: ", i+1);
        scanf("%s", tablica);
        length=strlen(tablica);
        if(length>20)
        {
            printf("Blad. Napis powinien miec maksymalnie 20 znakow.\n");
            continue;
        }
        else
        {
            fprintf(plik, "%s\n", tablica);
        }
    }
    fclose(plik);
    return 0;
}
2

Użyj funkcji fgets, masz tu przykład: https://ideone.com/ZQ9uJV

2
scanf("%[^\n]s", tablica);
1
char tablica[100];
printf("Prosze podac %d napis: ", i+1);
scanf(" %99[^\n]s%*c",tablica); // 99 znaków maks

1 użytkowników online, w tym zalogowanych: 0, gości: 1