scanf: wczytanie tablicy znakowej

0

Mam za zadanie wczytać tablicę znaków za pomocą scanf. Jednak coś nie działa w moim kodzie i nie wiem co zrobić, żeby poprawnie wczytywało znaki (także po spacji). Mógłby ktoś pomóc?

char tab[1000];
	char *wsk=tab;
	printf("Podaj tekst: ");
	int i;
	for(i=0;*(wsk+i)!='\0';i++){
		scanf("%s",(wsk+i));
		if(*(wsk+i)=='\n'){
			break;
		}
	}
1

Wczytuj znak po znaku (%c), albo użyj gets_s(), aby wczytać całą linię.

0

przy %c wczytuje tylko dwa pierwsze znaki, niestety w poleceniu jest żeby nie korzystać z funkcji z rodziny scanf, za wyjątkiem samej funkcji scanf.

0

Dlaczego wczytuje tylko pierwszed dwa znaki? Btw: gets_s() nie jest funkcją z rodziny scanf.

0

A nie da rady tego zrobić samym scanf'em?

1

Możesz w sumie użyć formatu %[^\n]

1
char buf[100];
scanf("%99[^\n]%*[^\n]%*c", buff); // 99 by uwzględnić zero kończące.

%99[^\n] - wczytaj dane do końca linii, ale nie więcej niż 99 znaków (koniec linii pozostaje w buforze)
%*[^\n] - zignoruj dowolną ilość znaków aż do napotkania znaku końca linii
%*c - przeskocz jeden znak (powinien być znak końca linii).

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