[c] pobieranie wiekszej ilosci slow z stdin

0

Mam taki problem: chce pobrac ze standardowego wejscia dluzszy tekst zakonczony znakiem nowej lini (nie wiem ile tego bedzie, mzoe byc pare znakow a moze byc kilkadziesiat slow..) no i nie wiem jak sie za to zabrac. scanf raczej odpada bo nawet jesli dac go w petli to po ostatnim slowie bedzie czekal (chyba ze jest mozliwosc rozpoznania czy zostal wcisniety 'enter').
probowalem jeszcze zrobic scanf z foramtem [..] tylko jesli proboje dac scanf("%[' '-'~']s",..) to nie dziala :. Natomiast jesli zrobie np. tak: scanf("%[a-z,A-Z,0-9,' ']s",..) to juz dziala ale musialbym jescze wszystkie zbiory dodawac (!,#,@,$ itd.)
Chyba to troche niejasno opisalem ale raczej cos z tego wiadomo ;).

0

pobierasz całą linię (np. fgets) a potem dzielisz tekst na słowa (np. strtok).

0

scanf + formaty.

%[^\n] - czyta wszystko, aż do wystąpienia \n.

0
klikus napisał(a)

scanf + formaty.

%[^\n] - czyta wszystko, aż do wystąpienia \n.

to by bylo to, tylko co zrobi jesli rozmiar mojego bufora okaze sie za maly?
przeczytalem w manie o formacie 'a' ale (gcc-4.1.2) po wczytaniu danych za pomoca tego i probie wypisania ich wypisuje mi tylko: (null).

0

To albo korzystasz z fgets albo piszesz: scanf("%255[^\n]", arr).

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