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
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ć...
- 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).
- 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);