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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.69
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 812
#1

Тернарная операция - C++

14.01.2011, 02:18. Просмотров 4508. Ответов 34
Метки нет (Все метки)

Всем доброго времени суток. Вот написал прогу
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main(int argc, char** argv)
{
    string name;
    ofstream fout;
    if (argc > 1 && argv[1])
    {
        name = argv[1];
        fout.open(name.c_str(), ios::out | ios::app);
    }
    ostream& sout = name.empty() ? cout : fout;
    return 0;
}
Она показывает использование тернарной операции.
Но прога выдаёт ошибку на знаке вопроса в пердпоследней строке. Поправьте пожалуйста код.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 02:18     Тернарная операция
Посмотрите здесь:

Тернарная операция - C++
Короче говоря вот код: char c = '+', p = '-', l = '*', u = '/'; cin &gt;&gt; x &gt;&gt; y; u ? cout &lt;&lt; x / y : cout &lt;&lt; 0; cin &gt;&gt; x &gt;&gt; y; ...

Тернарная условная операция - C++
Выражение1?Выражение2:Выражение3; Чем можно заменить Выражение3, чтобы ничего не выполнилось, а программа дальше стала работать? Как...

Тернарная условная операция - C++
Здравствуйте, только начал изучать C++, написал вот программу которая показывает в двоичном представлении цифры до 255: #include...

С++ не смог разобраться (тернарная операция) - C++
Уважаемые программисты прошу помочь переделать 1 строку, предрались в училище и сказал что такого еще не проходили ( в общем ...

Странно работает тернарная операция - C++
Доброй ночи... if((i == 3)?(!(*BoolHash)):((*BoolHash))) cout &lt;&lt; &quot;\nError\n&quot;; else {// Выполнение функции} Если i = 1 или 2...

Тернарная операция. Пустое значение - C++
Всем привет. Есть условие. Если проверка проходит, то переменной присваивается значение, если нет, то не присваивается. Можно...

Условие с двоеточием. Тернарная условная операция - C++
Все здрасьте. Где то я видел очень полезную вещь, но не могу вспомнить как правильно использовать. Там был пример с двоеточием, вот...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
14.01.2011, 02:35     Тернарная операция #2
Возьмите условие тернарного выражения name.empty() в круглые скобочки.
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 812
14.01.2011, 03:00  [ТС]     Тернарная операция #3
Непонял( Покажите пожалуйста в коде.

Добавлено через 15 минут
(name.empty()) так что ли?
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 812
17.01.2011, 11:10  [ТС]     Тернарная операция #4
Два дня уже парю мозг. не могу найти или понять, в чём ошибка в этой программе. Подскажите пожалуйста.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.01.2011, 11:13     Тернарная операция #5
А что такое тернарная операция?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.01.2011, 11:14     Тернарная операция #6
Какую ошибку-то выдаёт? У меня ваш код компилируется.
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 812
17.01.2011, 11:16  [ТС]     Тернарная операция #7
А какой у вас компилятор? Я пользуюсь Borland С++ 5.02

Добавлено через 1 минуту
Ошибка в предпоследней строке
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.01.2011, 11:16     Тернарная операция #8
DrSMERTb, сделайте милость - плесните на него серной кислоты и установите нормальный компилятор.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.01.2011, 11:17     Тернарная операция #9
Как по вашему, может ли фраза "ошибка в предпоследней строке" являться ответом на вопрос "какая ошибка"? По-моему, не-а, не может.

Не по теме:

Хм, странно, у меня впервые ответы не склеились...

DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 812
17.01.2011, 11:18  [ТС]     Тернарная операция #10
Я б с радостью последовал вашему совету) Но дело в том, что это единственная версия борланда (из мной найденных), которая работает на Windows 7 x64
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.01.2011, 11:19     Тернарная операция #11
DrSMERTb,
Цитата Сообщение от DrSMERTb Посмотреть сообщение
это единственная версия борланда
Поставьте нормальный компилятор, повторяю. Поставьте, скажем, CodeBlocks, в его состав входит MinGW - порт GCC под винды.
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 812
17.01.2011, 11:25  [ТС]     Тернарная операция #12
А во всё разобрался)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main(int argc, char** argv)
{
    string name;
    ofstream fout;
    if (argc > 1 && argv[1])
    {
        name = argv[1];
        fout.open(name.c_str(), ios::out | ios::app);
    }
    ostream& sout = name.empty(); cout : fout;
    return 0;
}
Вот так нужно. А теперь можно справку по каждой строке если не трудно, что делает эта программа)
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.01.2011, 11:26     Тернарная операция #13
И что, по-вашему, теперь происходит в 16 строке? о_О

Добавлено через 38 секунд
Цитата Сообщение от DrSMERTb Посмотреть сообщение
Вот написал прогу
Цитата Сообщение от DrSMERTb Посмотреть сообщение
можно справку по каждой строке
Не вяжется, а?
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 812
17.01.2011, 11:27  [ТС]     Тернарная операция #14
Как и до этого даже не предпологаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2011, 11:28     Тернарная операция
Еще ссылки по теме:

Нюансы синтаксиса: объяснить как работает тернарная операция в заданном фрагменте кода - C++
Всем доброго времени суток! Помогите разобраться с кодом. const char x = {&quot;Jason &quot;, &quot;at your service\n&quot;}; const char * y =...

Тернарная операция "?" - C++
интересует вопрос есть ли в тернарной операции вложения,т.е. можно ли влаживать функции в тернарной операции,как в if else?

Загадка: Что делает функция? Тернарная система исчисления и логика - C++
Что делает функция: std::string f(unsigned int x) { std::string r=&quot;&quot;; char digits={'-', '0', '+'}; int d; int ...

операция <<::>> - C++
имею код char Car::*Get_Marka(){ return marka ; } char Car::*Get_Color() { return color ; } bool Car::Get_Rastamojena() { return...

Операция ИЛИ - C++
Добрый вечер) Я новичок в СИ поэтому если вопрос глупый не пинайте) Возможно ли сделать подобную операцию в СИ: IF (a == 3 ИЛИ 4) {...


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.01.2011, 11:28     Тернарная операция #15
DrSMERTb, так вот, вы сначала почитайте о том, что делает тернарная операция, а не только как она называется. А потом ещё можете почитать, что метод тыка - не наш метод, и надо знать, куда тыкать.
Yandex
Объявления
17.01.2011, 11:28     Тернарная операция
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru