Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

14.01.2011, 02:18. Просмотров 4702. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Тернарная операция (C++):

Тернарная операция - 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++
Всем привет. Есть условие. Если проверка проходит, то переменной присваивается значение, если нет, то не присваивается. Можно...

34
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 816
17.01.2011, 11:28  [ТС] #16
Цитата Сообщение от silent_1991 Посмотреть сообщение
И что, по-вашему, теперь происходит в 16 строке? о_О

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


Не вяжется, а?
Ну ладно я эту прогу стянул с википедии. Просто в учебнике про этот вид операции ничего не упоминается.
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
17.01.2011, 11:29 #17
Цитата Сообщение от DrSMERTb Посмотреть сообщение
в учебнике про этот вид операции ничего не упоминается
Не верю! (с)
1
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 816
17.01.2011, 11:31  [ТС] #18
Цитата Сообщение от silent_1991 Посмотреть сообщение
Не верю! (с)
Учебник Т.А. Павловская "с\с++ Программирование на языке высокого уровня" Можете почитать и сами в этом убедитесь.
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
17.01.2011, 11:33 #19
DrSMERTb, вообще многие рекомендуют Павловскую сжигать сразу после покупки. Сам не читал, но я этим людям доверяю. Почитайте лучше Дейтелов, мне они понравились.
1
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 816
17.01.2011, 11:34  [ТС] #20
Обязательно сделаю это. Но сейчас мне просто нужна справка по данной программе. Не больше и не меньше.
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
17.01.2011, 11:47 #21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
// Аргументый функции main:
// argc - счётчик параметров командной строки
// (как минимум равен 1, поскольку первый аргумент - 
// всегда имя исполняемого файла)
// argv - массив строк, в каждой из которых хранится один параметр
//
// Пример: программа запущена из командной строки в виде:
// prog.exe arg1 arg2 arg3
// Тогда argc будет равен 4 (первый обязательный аргумент - имя
// запускаемого файла prog.exe и три дополнительных аргумента),
// а массив argv будет содержать 4 строки:
// argv[0] == "prog.exe",
// argv[1] == "arg1",
// argv[2] == "arg2",
// argv[3] == "arg3",
int main(int argc, char** argv)
{
    string name;   // Строковая переменная
    ofstream fout; // Выходной поток
 
    // Если в командной строке присутствовало больше одного аргумента
    // (имени файла) и второй аргумент не пустой
    if (argc > 1 && argv[1])
    {
        // Строку name инициализируем значением второго аргумента
        name = argv[1];
        // Связываем потом fout с файлом, имя которого было задано в 
        // качестве второго аргумента
        fout.open(name.c_str(), ios::out | ios::app);
    }
 
    // Если имя файла в качестве аргумента указано не было, связываем
    // поток sout со стандартным потоком вывода cout, иначе связывем его
    // с открытым ранее потоком fout
    ostream& sout = name.empty() ? cout : fout;
 
    return 0;
}
Если коротко, то мы можем запустить программу с параметром - именем файла, куда будем выводить данные. Если мы такое имя задали, то при последующем использовании sout данные будут выводиться не на консоль, а в указанный файл. Если же мы запустили программу без параметров, то вывод будет происходить на консоль.
1
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 816
17.01.2011, 12:18  [ТС] #22
Ладно можете не объяснять что да как, у кого компилируется первоначальный вариан программы, можете ехе файл скинуть на майл?
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
17.01.2011, 12:21 #23
DrSMERTb, вообще-то я уже объяснил, что да как. Посмотрите сообщение повыше вашего.
1
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 816
17.01.2011, 12:27  [ТС] #24
Извините, видно браузер затупил при обновление страницы.

Добавлено через 3 минуты
Большое спасибо. Но всё-таки не могли бы с файликом помочь, желательно не один исполняющий файл а полностью пакет файлов, которые создаются при компилирование. Заранее спасибо. Мой майл Andrev_pepel@mail.ru
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
17.01.2011, 12:29 #25
Если не секрет, зачем вам это? Эта программа ничего не делает, вам её никак использовать не удастся.
1
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 816
17.01.2011, 12:33  [ТС] #26
)) Знаете я всё время писал на языке BASIС, нас ему в школе учили) В нём я за неделю написал примитивные шашки... Но поступив в институт пришлось обучаться СИ, а эта программа должна проиллюстрировать пример использования тернарной операции. Вот так вот.
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
17.01.2011, 12:36 #27
Ну вы и нашли пример... Вот вам простой и наглядный пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
    int a, b;
 
    std::cin >> a;
    std::cin >> b;
 
    std::cout << ((a - b == 0) ? "Equal" : "Not equal") << std::endl;
 
    return 0;
}
1
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 816
17.01.2011, 12:38  [ТС] #28
6 ошибок выдал)))
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
17.01.2011, 12:41 #29
Текст ошибок.
1
DrSMERTb
60 / 36 / 4
Регистрация: 12.11.2010
Сообщений: 816
17.01.2011, 12:50  [ТС] #30
Вот они все, только сейчас поменялось раньше было 2 вонин и 6 ошибок, ща наоборот.
0
17.01.2011, 12:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2011, 12:50
Привет! Вот еще темы с ответами:

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

Нюансы синтаксиса: объяснить как работает тернарная операция в заданном фрагменте кода - 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 ...


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

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

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