С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.89/28: Рейтинг темы: голосов - 28, средняя оценка - 4.89
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
1

Тернарная операция

14.01.2011, 02:18. Просмотров 5220. Ответов 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;
}
Она показывает использование тернарной операции.
Но прога выдаёт ошибку на знаке вопроса в пердпоследней строке. Поправьте пожалуйста код.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 02:18
Ответы с готовыми решениями:

Тернарная операция
(!(x%3))? x=x/3 : x=x%3; - верно? В условии мы проверяем делится ли x нацело...

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

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

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

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

34
lemegeton
2935 / 1364 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
14.01.2011, 02:35 2
Возьмите условие тернарного выражения name.empty() в круглые скобочки.
0
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
14.01.2011, 03:00  [ТС] 3
Непонял( Покажите пожалуйста в коде.

Добавлено через 15 минут
(name.empty()) так что ли?
0
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
17.01.2011, 11:10  [ТС] 4
Два дня уже парю мозг. не могу найти или понять, в чём ошибка в этой программе. Подскажите пожалуйста.
0
taras atavin
4205 / 1768 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
17.01.2011, 11:13 5
А что такое тернарная операция?
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
17.01.2011, 11:14 6
Какую ошибку-то выдаёт? У меня ваш код компилируется.
0
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
17.01.2011, 11:16  [ТС] 7
А какой у вас компилятор? Я пользуюсь Borland С++ 5.02

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

Не по теме:

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

0
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
17.01.2011, 11:18  [ТС] 10
Я б с радостью последовал вашему совету) Но дело в том, что это единственная версия борланда (из мной найденных), которая работает на Windows 7 x64
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
17.01.2011, 11:19 11
DrSMERTb,
Цитата Сообщение от DrSMERTb Посмотреть сообщение
это единственная версия борланда
Поставьте нормальный компилятор, повторяю. Поставьте, скажем, CodeBlocks, в его состав входит MinGW - порт GCC под винды.
1
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
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;
}
Вот так нужно. А теперь можно справку по каждой строке если не трудно, что делает эта программа)
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
17.01.2011, 11:26 13
И что, по-вашему, теперь происходит в 16 строке? о_О

Добавлено через 38 секунд
Цитата Сообщение от DrSMERTb Посмотреть сообщение
Вот написал прогу
Цитата Сообщение от DrSMERTb Посмотреть сообщение
можно справку по каждой строке
Не вяжется, а?
1
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
17.01.2011, 11:27  [ТС] 14
Как и до этого даже не предпологаю.
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
17.01.2011, 11:28 15
DrSMERTb, так вот, вы сначала почитайте о том, что делает тернарная операция, а не только как она называется. А потом ещё можете почитать, что метод тыка - не наш метод, и надо знать, куда тыкать.
1
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
17.01.2011, 11:28  [ТС] 16
Цитата Сообщение от silent_1991 Посмотреть сообщение
И что, по-вашему, теперь происходит в 16 строке? о_О

Добавлено через 38 секунд


Не вяжется, а?
Ну ладно я эту прогу стянул с википедии. Просто в учебнике про этот вид операции ничего не упоминается.
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
17.01.2011, 11:29 17
Цитата Сообщение от DrSMERTb Посмотреть сообщение
в учебнике про этот вид операции ничего не упоминается
Не верю! (с)
1
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
17.01.2011, 11:31  [ТС] 18
Цитата Сообщение от silent_1991 Посмотреть сообщение
Не верю! (с)
Учебник Т.А. Павловская "с\с++ Программирование на языке высокого уровня" Можете почитать и сами в этом убедитесь.
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
17.01.2011, 11:33 19
DrSMERTb, вообще многие рекомендуют Павловскую сжигать сразу после покупки. Сам не читал, но я этим людям доверяю. Почитайте лучше Дейтелов, мне они понравились.
1
DrSMERTb
60 / 36 / 10
Регистрация: 12.11.2010
Сообщений: 820
17.01.2011, 11:34  [ТС] 20
Обязательно сделаю это. Но сейчас мне просто нужна справка по данной программе. Не больше и не меньше.
0
17.01.2011, 11:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2011, 11:34

Странно работает тернарная операция
Доброй ночи... if((i == 3)?(!(*BoolHash)):((*BoolHash))) cout &lt;&lt; &quot;\nError\n&quot;;...

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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