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

Растолкуйте код - C++

Восстановить пароль Регистрация
 
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:22     Растолкуйте код #1
Помогите с кодом
C++
1
cout << (i == 0 || j == 0 || i == N + 1 || j == M + 1 ? '#' : a[i][j]) << (j <= M ? "" : "\n");
что делает
C++
1
cout << ( ? : );
я впервые с таким столкнулся.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
2ima
☆ Форумчанин(FSC)☆
 Аватар для 2ima
909 / 288 / 9
Регистрация: 28.04.2013
Сообщений: 2,321
Записей в блоге: 10
Завершенные тесты: 1
03.02.2014, 22:28     Растолкуйте код #2
Это оператор
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:29  [ТС]     Растолкуйте код #3
Спасибо , как он называется? на условие похожее из php
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
03.02.2014, 22:29     Растолкуйте код #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от makord Посмотреть сообщение
cout << ( ? : );
единственный тернарный оператор в с++, называется if then else
2ima
☆ Форумчанин(FSC)☆
 Аватар для 2ima
909 / 288 / 9
Регистрация: 28.04.2013
Сообщений: 2,321
Записей в блоге: 10
Завершенные тесты: 1
03.02.2014, 22:32     Растолкуйте код #5
Enotniy, точно, то что нужно, вспомнил
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:39  [ТС]     Растолкуйте код #6
Цитата Сообщение от Enotniy Посмотреть сообщение
единственный тернарный оператор в с++, называется if then else
Так
C++
1
    cout << (5 != 2 ? '#' : '*');
работает, а почему это не то выводит?
C++
1
cout << (2 == 2 ? '#' : 4);
если не взять в кавычки 4 то выводит 35, а откуда это значение?
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
03.02.2014, 22:42     Растолкуйте код #7
makord, немного разъясню:
(условие) ? истина : ложь;
То есть, код вида
C++
1
2
3
4
5
6
int a = 1, b = 2;
 
    if(a>b)
        cout << "больше";
    else
        cout << "меньше";
Можно заменить на
C++
1
2
3
int a = 1, b = 2;
 
    cout << (a>b) ? "больше" : "меньше";
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
03.02.2014, 22:43     Растолкуйте код #8
Цитата Сообщение от makord Посмотреть сообщение
если не взять в кавычки 4 то выводит 35, а откуда это значение?
скорее всего это значение юникода шарпа
да # = 35
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
03.02.2014, 22:44     Растолкуйте код #9
makord, типы должны быть одинаковы.
35 - цифровой код символа #.
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:47  [ТС]     Растолкуйте код #10
Цитата Сообщение от zelim Посмотреть сообщение
makord, немного разъясню:
(условие) ? истина : ложь;
То есть, код вида
C++
1
2
3
4
5
6
int a = 1, b = 2;
 
    if(a>b)
        cout << "больше";
    else
        cout << "меньше";
Можно заменить на
C++
1
2
3
int a = 1, b = 2;
 
    cout << (a>b) ? "больше" : "меньше";
Спасибо, но это я понял, просто интересно откуда 35

Добавлено через 2 минуты
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
03.02.2014, 22:47     Растолкуйте код #11
makord, (условие) ? истина : ложь;
истина и ложь должны быть одного типа. То есть, если 4 не в кавычках - считается, что оба числа целые. Иначе - символы.
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:51  [ТС]     Растолкуйте код #12
Всем спасибо! Буду дальше работать, если что компилятор рассудит)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2014, 23:08     Растолкуйте код
Еще ссылки по теме:

Написать код для игры НИМ. проверьте пожалуйста тот ли это код C++
C++ задача(есть код программы, нужно объяснить её программный код. )
C++ Растолкуйте new с адресацией!

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
uhx
 Аватар для uhx
56 / 56 / 6
Регистрация: 11.07.2013
Сообщений: 300
03.02.2014, 23:08     Растолкуйте код #13
Цитата Сообщение от makord Посмотреть сообщение
Так
C++
1
    cout << (5 != 2 ? '#' : '*');
работает, а почему это не то выводит?
C++
1
cout << (2 == 2 ? '#' : 4);
если не взять в кавычки 4 то выводит 35, а откуда это значение?
C++
1
    cout<<char(35);
Сделайте так
В десятичной системе символ # равен 35.
ЗЫ http://www.dpva.info/Guide/GuideMath...odeEquivalent/
Yandex
Объявления
03.02.2014, 23:08     Растолкуйте код
Ответ Создать тему
Опции темы

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