2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Олимпиадное программирование, с++, ввод
Сообщение14.04.2015, 20:00 
Заслуженный участник


04/05/09
4582
Я точно не уверен - надо читать документацию, но возможно, что -1 (EOF) возвращается если возникнет ошибка низкоуровневого чтения, а в случае ошибки формата вы получите 0.

 Профиль  
                  
 
 Re: Олимпиадное программирование, с++, ввод
Сообщение15.04.2015, 10:31 


27/08/14
206
integer в сообщении #1003882 писал(а):
Только не понятно, почему если ввести символ, то происходит зацикливание, а не выход из цикла

В соответствии с документацией функция возвращает количество успешно прочитанных элементов (ещё может вернуть EOF если ничего не удалось прочитать). Поэтому, если вы хотите прочитать одно число, то надо проверять, что результат равен 1:
Используется синтаксис C++
int n;
while (scanf("%d", &n) == 1)
{
        cout << "!!!" << endl;
}

В вашем случае (при вводе символа) scanf не мог преобразовать символ в число и возвращал 0. При этом он не пропускал этот символ и при следующем вызове снова его считывал

 Профиль  
                  
 
 Re: Олимпиадное программирование, с++, ввод
Сообщение16.04.2015, 00:02 
Заслуженный участник


02/08/11
6892
Progger в сообщении #1004088 писал(а):
ещё может вернуть EOF если ничего не удалось прочитать
Судя по приведённой вами же документации - ни в коем случае не может.

 Профиль  
                  
 
 Re: Олимпиадное программирование, с++, ввод
Сообщение16.04.2015, 02:13 
Заслуженный участник


04/05/09
4582
Цитата:
if either happens before any data could be successfully read, EOF is returned.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group