#while-loop #scanf
Вопрос:
В основном код здесь принимает некоторую строку и дает строку без специального символа .
Но когда я даю ввод, вывод дает желаемый результат. Но это дает мне бесконечную отдачу. Я хочу, чтобы пользователь давал бесконечный ввод и получал желаемый результат .
int main() { int g= 2; char C; while (1) { char s[257]; scanf("%[^n]", s); int i; int j= strlen (s); for (i=0; ilt; j; i ){ if( (s[i]gt;='a'amp;amp; s[i]lt;='z')|| (s[i]gt;='A' amp;amp; s[i]lt;='Z') || (s[i]==' ') ) printf ("%c",s[i]); } } return 0; }
Комментарии:
1.
scanf("%[^n]", s);
никогда не потребляет a'n'
, поэтому ввод застрял при'n'
достижении a. Исследованияfgets(s, sizeof s, stdin)
.2. Но я хочу использовать scanf () ; Есть ли способ сделать это без fgets () ?
3. Нет хорошего способа сделать это с
scanf()
помощью .scanf()
может быть использован хакерским способом. Ваш звонок.4. значит, это происходит из-за «Буфера», верно ? . Любой способ очистить буфер при использовании scanf (); ?