[C] Wczytywanie określonej liczby znaków za pomocą scanf

0

Witam, piszę z powodu problemu z funkcją scanf. Jak w temacie mam problem z wczytywaniem określonej liczby znaków za pomocą scanf, a dokładniej z stworzeniem programu, który "wie", że określona liczba została wpisana np. nie pozwala kontynuować użytkownikowi jeżeli ten nie wpisał minimum 10 znaków (te zadanie należy wykonać w pętli, ale jaki warunek?). Jak zrobić program, który wczytuje np. całe zdanie i kończy wczytywać po kropce (i np. wypisuje teraz wczytaną zawartość od tyłu). Z góry dziękuje za odpowiedź i przepraszam za tak nieuporządkowane pytanie bez kodu ;) Acha, i mogę używać jedynie zmiennej char. Proszę również o nie pisanie "spytaj google", bo odeśle mnie do mojego wątku co najwyżej :).

0

Samym scanfem możesz ograniczyć jedynie z góry. Jeśli chcesz jeszcze z dołu to strlen i zwykłe porównywanie.

0

A nie możesz użyć getc i czytać po znaku ze strumienia?

0

%c w scanf() czyta ci po jednym znaku...

0

Dziękuje wszystkim za pomoc, ale nie wiem czy mogę/potrafię prawidłowo użyć wasze rozwiązania, dlatego wyjaśnię, co chciałbym zrobić...

  1. Pobieram liczbę a (typu int), która ma wyznaczyć długość "wydrukowanego" potem łańcucha. Następnie w pętli pobieram kolejne znaki od użytkownika i zapisuje pod kolejnymi miejscami w tabeli tab[30] (typu char).
  2. Pętla pobierająca kolejne znaki ma się zakończyć tylko wtedy, gdy użytkownik wprowadzi przynajmniej tyle znaków ile ma wartość a(lub więcej) i naciśnie enter. W przeciwnym razie czeka na następne.
    Wydaje mi się, że wystarczą 4 linijki kodu, problem w tym, że mogę używać jedynie scanf i podstawowych bibliotek...
0
int n;
char bufor[30]={};
scanf("%d",&n);
do
{
  scanf("%s",bufor);
}while(strlen(bufor)>n);

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