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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.69
DrSMERTb
 Аватар для DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 808
14.01.2011, 02:18     Тернарная операция #1
Всем доброго времени суток. Вот написал прогу
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++
C++ операция <<::>>
С++ не смог разобраться (тернарная операция) C++
тернарная операция "?" C++
Условная операция C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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 данные будут выводиться не на консоль, а в указанный файл. Если же мы запустили программу без параметров, то вывод будет происходить на консоль.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrSMERTb
 Аватар для DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 808
17.01.2011, 12:18  [ТС]     Тернарная операция #22
Ладно можете не объяснять что да как, у кого компилируется первоначальный вариан программы, можете ехе файл скинуть на майл?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.01.2011, 12:21     Тернарная операция #23
DrSMERTb, вообще-то я уже объяснил, что да как. Посмотрите сообщение повыше вашего.
DrSMERTb
 Аватар для DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 808
17.01.2011, 12:27  [ТС]     Тернарная операция #24
Извините, видно браузер затупил при обновление страницы.

Добавлено через 3 минуты
Большое спасибо. Но всё-таки не могли бы с файликом помочь, желательно не один исполняющий файл а полностью пакет файлов, которые создаются при компилирование. Заранее спасибо. Мой майл Andrev_pepel@mail.ru
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.01.2011, 12:29     Тернарная операция #25
Если не секрет, зачем вам это? Эта программа ничего не делает, вам её никак использовать не удастся.
DrSMERTb
 Аватар для DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 808
17.01.2011, 12:33  [ТС]     Тернарная операция #26
)) Знаете я всё время писал на языке BASIС, нас ему в школе учили) В нём я за неделю написал примитивные шашки... Но поступив в институт пришлось обучаться СИ, а эта программа должна проиллюстрировать пример использования тернарной операции. Вот так вот.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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;
}
DrSMERTb
 Аватар для DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 808
17.01.2011, 12:38  [ТС]     Тернарная операция #28
6 ошибок выдал)))
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.01.2011, 12:41     Тернарная операция #29
Текст ошибок.
DrSMERTb
 Аватар для DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 808
17.01.2011, 12:50  [ТС]     Тернарная операция #30
http://i067.***********/1101/37/5a87b796b0c4.png Вот они все, только сейчас поменялось раньше было 2 вонин и 6 ошибок, ща наоборот.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.01.2011, 12:53     Тернарная операция #31
По-моему, вы снова попытались скомпилировать код с вики.
DrSMERTb
 Аватар для DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 808
17.01.2011, 13:12  [ТС]     Тернарная операция #32
В общем. У вас судя по всему она откомпеилировалась. Поэтому просьба скиньте пожалуйста файл, а я завтра преподу текст проги покажу, и файл запущу покажу что всё работает, да и всё.

Добавлено через 8 минут
silent_1991, поймите мне просто надо сдать это и всё. причём нести сдавать уже завтра.. и это крайний срок.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.01.2011, 13:20     Тернарная операция #33
Пожалуйста.
Вложения
Тип файла: rar 1.rar (180.7 Кб, 13 просмотров)
DrSMERTb
 Аватар для DrSMERTb
59 / 35 / 4
Регистрация: 12.11.2010
Сообщений: 808
17.01.2011, 13:44  [ТС]     Тернарная операция #34
Всё большое спасибо)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2011, 23:47     Тернарная операция
Еще ссылки по теме:

C++ Условие с двоеточием. Тернарная условная операция
Загадка: Что делает функция? Тернарная система исчисления и логика C++
Тернарная условная операция C++

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

Или воспользуйтесь поиском по форуму:
DrMaxSter
 Аватар для DrMaxSter
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 13
21.03.2011, 23:47     Тернарная операция #35
Доброго времени суток. Может быть кто-нибудь подскажет, как с помощью тернарной операции распечатать матрицу таблицей?
Yandex
Объявления
21.03.2011, 23:47     Тернарная операция
Ответ Создать тему
Опции темы

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