Я заметил сегодня, что иногда, когда я использую функцию gets, мой компилятор просто игнорирует ее. ОК. Это пример, где получает произведения:получает функцию не читает мою переменную
#include <stdio.h>
void main()
{
char s[50];
gets(s);
puts(s);
}
Теперь, если я делаю это простое изменение в моей программе, функция получает игнорируется:
#include <stdio.h>
void main()
{
int n;
printf("dati n:\n");
scanf("%d",&n);
char s[50];
gets(s);
puts(s);
}
«игнорируется» означает, что, когда я запустить программу на компилятор читает переменную, а затем завершает работу без чтения моей строки. Почему это происходит? Спасибо.
Компилятор всегда должен игнорировать 'get', в принципе. Не используйте его, это небезопасно. – Kninnug
Ваш компилятор прав. Игнорировать 'gets()'. Просто используйте 'fgets()'. : P –
Это потому, что 'scanf()' "хватило" цифр, которые вы хотели прочитать, а это значит, что когда он 'gets()' 'поворачивается, чтобы читать, ничего не осталось. Сторона примечания: 'gets()' is _extremely_ плохой стиль. Предпочитайте 'fgets()' в будущем. 'gets()' настолько опасен, что был удален в последнем стандарте C. –