Форум программистов, компьютерный форум CyberForum.ru

плохой gets() - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
Ilyawow
24 / 24 / 5
Регистрация: 18.11.2011
Сообщений: 266
20.11.2011, 15:28     плохой gets() #1
Всем привет !! Сталкнулся с такой проблемой что оператор gets() нехочет выполнять есле передним стоит scanf вот пример
C++
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
main(){
int a;
char str[123];
scanf("%d",a);
gets(str);
getch();
}
помогите пожалуйста пишу прогу для научно иследовательской конференции а тут такая хрень (извините за выражение )!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 15:28     плохой gets()
Посмотрите здесь:

Visual C++ Плохой проект
Компьютер плохой или кто плохой?
Плохой поиск
C++ Насколько плохой код
Плохой звук
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.11.2011, 15:38     плохой gets() #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int main(){
int a;
char str[123];
scanf("%d",&a);
fflush(stdin);
gets(str);
getch();
}
Ilyawow
24 / 24 / 5
Регистрация: 18.11.2011
Сообщений: 266
20.11.2011, 15:43  [ТС]     плохой gets() #3
Спасибо немоглибы расказать, что делает этот оператор или функция !!
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.11.2011, 15:44     плохой gets() #4
Ilyawow, гуглом пользоватся не умеешь?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 16:08     плохой gets() #5
Цитата Сообщение от Ilyawow Посмотреть сообщение
Спасибо немоглибы расказать, что делает этот оператор или функция !!
http://www.cplusplus.com/reference/c...cstdio/fflush/
В вашем случае чистит буфер клавиатуры
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
20.11.2011, 16:21     плохой gets() #6
Дело в том, что после работы ф-ции scanf() в буфере ввода остается символ '\n', а ф-ция gets() считывает данные до этого символа. Т.к. она сразу на него натыкается, то создается впечатление, что она не работает, но это не так. Ф-ция fflush() как раз удаляет этот символ из буфера.
Yandex
Объявления
20.11.2011, 16:21     плохой gets()
Ответ Создать тему
Опции темы

Текущее время: 13:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru