Бесконечный вывод с помощью scanf(«%[^n]»);

#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 (); ?