Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что неверно в коде? 
:(
    Опции темы
асд1
  Дата 20.7.2013, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 18.6.2013

Репутация: нет
Всего: нет



user posted image

Выводит (age 0), a должна выводить (age -1)
PM MAIL   Вверх
feodorv
Дата 20.7.2013, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(асд1 @  20.7.2013,  18:47 Найти цитируемый пост)
Выводит (age 0), a должна выводить (age -1) 

Видимо, >> таки портит значение считываемой переменной, даже если ввод некорректен...

А Вы пробовали после 
Цитата(асд1 @  20.7.2013,  18:47 Найти цитируемый пост)
cin >> first_name >> age; 
 считать ещё чего-нибудь с cin?
Код

#include <iostream>

using namespace std;

int main()
{
  cout << "Please, enter your name and age.\n";
  char first_name[20] = "???";

  int age = -1;

  cin >> first_name >> age;
  cout << "hello, " << first_name << " (age " << age << ")\n";

  age = -1;
  cin >> first_name >> age;
  cout << "hello, " << first_name << " (age " << age << ")\n";
}


Это сообщение отредактировал(а) feodorv - 20.7.2013, 19:17


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
ZeUsM
Дата 29.7.2013, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 11.10.2011
Где: Moscow

Репутация: нет
Всего: нет



Интересное наблюдение:
1. Код немного измененнный 
Код

string first_name = "???";

изменено на:
Код

char first_name[20] = "???";

MSVC 2010 - результат соответствует ожиданию.
Код

Input your name ang age ...
20 Guddy
Hello 20 age (-1)

На компиляторе MinGW 4.7.2
вывод
Код

Hello 20 age (0)

На компиляторе MinGW 4.4.0
Код

Input your name ang age ...
20 Guddy
Hello 20 age (-1)


Вот как - то так.  smile 

PM MAIL   Вверх
CosmoMan
Дата 29.7.2013, 14:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 12.7.2005
Где: Харьков

Репутация: нет
Всего: 0



Видимо разница в реализации стандартной библиотеки в разных версиях компиляторов. 
В одной версии в "age" не попала строка вообще(она не изменилась), в другой версии строка попала как ноль. 
Или вас удивляет что то другое?

Видимо оператор << переопределен для char и string по разному в разных версиях библиотеки std. 

Это сообщение отредактировал(а) CosmoMan - 29.7.2013, 14:45
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0666 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.