Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/22: Рейтинг темы: голосов - 22, средняя оценка - 5.00
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359

Объекты cin, cout, endl и т.п

02.04.2014, 16:04. Показов 4878. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос. Можно ли использовать эти объекты по умолчанию или одной командой? Типа:
using std::"все объекты"
Лень каждый раз напомнит что использую тот или иной объект. Или как они там называются ( я только начинаю изучать с++)

Потом я не знаю сколько их там. Если там в библиотеке объектов несколько десятки то это здорово увеличит "вес" программы.

Я не страиваю алгоритмы. Даже когда изучал Basic с его то громоздким кодом я не строил алгоритм.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2014, 16:04
Ответы с готовыми решениями:

cin, cout, endl не определены
Всем здрасте=) Есть исходник, он работает и всё с ним отлично, мне необходимо его обфусцировать(т.е. зашифровать путём изменения имен...

Undeclared identifier (cout, endl, cin)
#include "iostream" #include "stdafx.h" #include "cmath" #include "cstdio" using namespace std; int main(void) { int...

Почему не определяются cout, cin, endl, system?
int i,n,k1,k2; float min,s=0; cout<<" n="; cin>>n; float* a=new float ; cout<<" Enter elements: "; ...

22
Неэпический
 Аватар для Croessmah
18145 / 10729 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
02.04.2014, 16:13
можно всё пространство использовать:
C++
1
using namespace std ;
Добавлено через 52 секунды
Цитата Сообщение от Altair42 Посмотреть сообщение
Если там в библиотеке объектов несколько десятки то это здорово увеличит "вес" программы.
всё что не используется будет откинуто
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
02.04.2014, 16:14
Цитата Сообщение от Altair42 Посмотреть сообщение
Если там в библиотеке объектов несколько десятки то это здорово увеличит "вес" программы.
С чего вдруг?

Не по теме:

Как же всем лень писать std:: ...

1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
02.04.2014, 16:26
Altair42, еще один извращенный вариант. Вам понравится.
Создайте .h файл, напишите в него один раз все using std::"что требуется", и подключайте в своих проектах всего одной строкой.
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
02.04.2014, 18:04  [ТС]
можно всё пространство использовать:
Код C++
1
using namespace std ;
Спасибо большое!

Добавлено через 4 минуты
Цитата Сообщение от 0x10 Посмотреть сообщение
С чего вдруг?
Пример:
Пишу себе программу. Ну большую. Надо использовать до фига и больше этих объектов. Целая страница будет заполнена using std::...

Еще пример. Пишу себе программу. же несколько страниц. Короче увлекся. Нужна использовать объект которого не добавил и программа не сможет опознать. Надо будет вернуться и добавит - лень. Или совсем забуду добавит. потом начни искать ошибку в коде из десяти страниц.
0
 Аватар для recoder
135 / 134 / 53
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
02.04.2014, 18:09
Пишите std:: и всё.
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
02.04.2014, 19:43  [ТС]
попробую )
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
02.04.2014, 22:24
Цитата Сообщение от Altair42 Посмотреть сообщение
Пишу себе программу. Ну большую. Надо использовать до фига и больше этих объектов. Целая страница будет заполнена using std::...
Большие программы лучше писать в виде набора из нескольких исходных файлов. Так и легче будет разбираться в структуре программы, и каждый файл будет содержать весьма умеренное количество using.
Цитата Сообщение от Altair42 Посмотреть сообщение
Пишу себе программу. же несколько страниц. Короче увлекся. Нужна использовать объект которого не добавил и программа не сможет опознать. Надо будет вернуться и добавит - лень.
Опять же, с небольшими исходными файлами это не станет проблемой.
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
04.04.2014, 08:27  [ТС]
Nick Alte, в любом случае проще использовать все облако чем писать 5 - 6 раз.
0
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
04.04.2014, 09:07
Цитата Сообщение от Altair42 Посмотреть сообщение
чем писать 5 - 6 раз.
Почему бы просто не писать
C++
1
2
std::cout
std::cin
Да, чуть длинее, зато обезопасишь себя от возможного конфликта имен, при использовании unsing namespace. Все равно, практически гарантированно в любой софтверной конторе using namespace либо вообще запрещен к использованию, либо имеет строгие рамки применения.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
04.04.2014, 10:33
Цитата Сообщение от DrOffset Посмотреть сообщение
Да, чуть длинее, зато обезопасишь себя от возможного конфликта имен, при использовании unsing namespace. Все равно, практически гарантированно в любой софтверной конторе using namespace либо вообще запрещен к использованию, либо имеет строгие рамки применения.
Как вариант, можно импортировать только самое частоиспользующееся, и если точно знаешь, что оно ни с чем не будет конфликтовать. Например:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
using std::cout;
using std::endl;
 
int main()
{
    cout << "Hello World" << endl;
    return 0;
}
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
04.04.2014, 13:25  [ТС]
Ребят как я понял std - название библиотеки. В самой библиотеке конфликт имен не возможно. Если написать using namespace std; это не означает ли что используется конкретная библиотека с названием "std". Или я не прав?

Конфликт возможен только если в программе используется несколько библиотек. В этом случае конфликт будет как бы программист не старался. Допустим "cout" есть в библиотеке "std" и есть в какой то другой, называется допустим "Х" и отвечает за какое то другое действие ( чисто гипотетически ).

Использование в одной программе 2 cout из разных библиотек приведет к конфликту. Если только каждый раз при использование не напомнит программе что именно этот cout который отвечает за хз что взят из библиотеки "Х". Если напомнит что объект взят из другой библиотеки каждый раз когда его используешь то не имеет значение ты используешь команду "using namespace std;" или "using std::cout;".
0
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
04.04.2014, 14:04
Цитата Сообщение от Altair42 Посмотреть сообщение
Ребят как я понял std - название библиотеки. В самой библиотеке конфликт имен не возможно. Если написать using namespace std; это не означает ли что используется конкретная библиотека с названием "std". Или я не прав?
Нет. Это пространство имен, а не библиотека. Вот ситуация (самая простая из возможных):
Есть пространство имен А, там определена функция f (int, int).
Есть пространство имен B, там тоже определена функция f(int, int).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace A
{
    void f(int, int) { }
}
 
namespace B
{
    void f(int, int) { }
}
 
using namespace A;
using namespace B;
 
int main ()
{
    f(1, 1); //ошибка, нельзя выбрать функцию
}
Если же писать так, то данная проблема будет исключена:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace A
{
    void f(int, int) { }
}
 
namespace B
{
    void f(int, int) { }
}
 
 
int main ()
{
    A::f(1, 1);
    B::f(1, 1);
}
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
04.04.2014, 18:51  [ТС]
DrOffset, Вы меня не поняли.

Допустим я использую пространство А и Б. Но чаше всего А. То есть пока пишу программу буду использовать пространство А по крайней мере десятки раз. А пространство Б лишь несколько раз. Не проще ли добавит пространство А полностью а из Б конкретные объекты при необходимости по ходу дела. Или так не возможно?
Пример:

using namespase A;
int main()
{
Какой та там код.

Команда для добавление объекта из другого пространства

Какой та там код с использованием введенного пространства и выход из того пространства.

продолжение....
}

Вы пример привели из 2 объектов, с 2 пространств. Если добавит каждый объект таким же способом чтоб программа не зависла, то первая сотня строки будут только записи о пространствах и используемых объектах.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.04.2014, 19:10
Цитата Сообщение от Altair42 Посмотреть сообщение
То есть пока пишу программу буду использовать пространство А по крайней мере десятки раз. А пространство Б лишь несколько раз
А вы на начало написания программы из нескольких тысяч строк можете предсказать интенсивность использования имен из конкретного неймспейса?

Не усложняйте на ровном месте, серьезно.
0
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
04.04.2014, 19:14
Цитата Сообщение от Altair42 Посмотреть сообщение
первая сотня строки будут только записи о пространствах и используемых объектах.
И зачем это делать? Я говорил о том, что в большинстве случаев достаточно использовать полное имя с включением пространства имен, как я показал в примере. Это нецелесообразно только в том случае, если вложенность пространств имен большая. Тогда можно сделать using namespace А::B::C; внутри того scope, в котором используются сущности из C. Либо воспользоваться псевдонимами для пространств имен
C++
1
namespace localC = A::B::C;
тоже настолько локально, насколько это позволяет задача. Пойнт в том, что глобальные включения в больших проектах могут непредсказуемо повлиять на код. Поэтому и не рекомендуется засорять текущее пространство имен лишними именами.

Цитата Сообщение от Altair42 Посмотреть сообщение
А пространство Б лишь несколько раз. Не проще ли добавит пространство А полностью а из Б конкретные объекты при необходимости по ходу дела.
Да можно и добавить. Зависит же это от многих вещей. Вообще когда учишься или пишешь для себя можно делать все, что хочешь. Я просто предупредил, что если приучиться к плохому стилю, скорее всего потом придется жестко переучиваться. Ну это конечно в том случае, если есть намерение связать профессиональную деятельность с программированием.
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
04.04.2014, 20:06  [ТС]
Ок я вас понял.
На счет программирование. Моя профессия ИТ. Но как многие знают в университетах третьих стран не к чему нормальному не учат. Мы типа изучали Бейзик и то на доске и на бумаге. Visual Basic в лицо не видел, в первые я узнал что есть еще несколько ОС для ПС через год после окончание универа. Вот и хочу узнать все подробности. Я некогда не ограничивался рамками. Помню я хотел вычислит другой способ найти дискриминант.

Я это к тому что у меня еще много будут бредовых для вас вопросов.

Добавлено через 14 минут
Вопрос не по теме. На каком языке написан Линукс? И на каком языке принимает команды?
0
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
04.04.2014, 20:28
Цитата Сообщение от Altair42 Посмотреть сообщение
На каком языке написан Линукс?
Ядро на С.
Цитата Сообщение от Altair42 Посмотреть сообщение
И на каком языке принимает команды?
Немножко неточная формулировка, но я думаю, что верно понял. Писать для Linux можно на любом языке (был бы инструментарий), системное ABI же соответствует C calling convention.
0
0 / 3 / 0
Регистрация: 28.06.2013
Сообщений: 359
04.04.2014, 20:35  [ТС]
Нуу я имел введу на каком языке к нему обращаться? Какой учит чтоб понять Линукс.

Я думал у него ядро на Ассемблер.
0
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
04.04.2014, 20:44
Цитата Сообщение от Altair42 Посмотреть сообщение
Я думал у него ядро на Ассемблер.
Ассемблер там есть. Но большая часть кода на С.
Цитата Сообщение от Altair42 Посмотреть сообщение
Нуу я имел введу на каком языке к нему обращаться? Какой учит чтоб понять Линукс.
Понять, в смысле исходники ядра? Если да, то С. Это основной язык.
Если просто программировать приложения для Linux, то подойдет и любой другой, который умеет делать вызовы С функций (это практически любой современный язык, главное чтобы он вообще под Linux существовал). В любой случае сейчас у многих языков обширные библиотеки, поэтому в зависимости от задачи может быть вообще не придется сталкиваться с системными вызовами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2014, 20:44
Помогаю со студенческими работами здесь

Cout <<endl; Что это значит? Если ничего нету в cout?
Здравствуйте ! Обьясните пожалуйста что значит cout &lt;&lt;endl; если он используется после цикла for?

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

iostream.h (непонятки с cout, endl )
дико извеняюсь, но.... если подключаю заголовочный файл (iostream.h), то его просто нет на моей системе(среда MVS2010 ето потдверждает)...

Как такое обращение возможно к перечислению в классе cout << A<int>::v<<endl;?
не пойму логику. #include&lt;iostream&gt; using namespace std; template&lt; typename T&gt; class A { public: enum { ...

cin cout
Как выводить через cin cout а не через printf. А то получается ерунда #include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru