Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2011, 11:22   #1
newnick1993
Новичок
Джуниор
 
Регистрация: 18.09.2011
Сообщений: 1
По умолчанию Опять проблемы с <iostream>

Начал учиться писать на Си. Для начала установил простенькую среду, даже не для с, а для с++, а писал на си. Дев-С++ называется. Тамошняя библиотечка не содержит ни cin, ни cout. Послал эту идею куда подальше. Установил коде блокс. Уже начал радоваться, что мои проблемы решены. И... Там вообще нет такой библиотеки в принципе. Скачать ее из интернета или из того же Дев-С проблемно. Проблемка заключается в том, что, включая эту библиотеку, кодблокс в отдельном файле .h открывает саму библиотеку и начинает материться на каждую строку. Иначе говоря, я вообще не знаю, что делать. Все советы а-ля "using namespace" вообще не катят, все перепробовал. Может мне стоит наконец-таки установить нормальную среду? Только подскажите откуда и дайте пожалуйста ссылочку.
newnick1993 вне форума Ответить с цитированием
Старый 18.09.2011, 12:17   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

С таким подходом вы ничего не добьетесь. Но если уж вам так хочется себе нормальную IDE - поставьте Qt Creator. Но то что вы собираетесь делать, можно сделать и в Dev-C++ и в Code::Blocks. Суть в том, что в поставках этих IDE файлы могут называться не так как в книге. В MSVS и Qt Creator этот файл называется просто iostream - без расширения, а в Code::Blocks и Dev-C++ он вроде как называется iostream.h. Что касается using namespace, дело в том, что весь файл iostream заключен в пространство имен std и соответственно что бы не писать каждый раз std::cout << "Hello, World!" << std::endl; пишут такую штуку, но это на мой взгляд немного неправильно. Лучше писать как приведено выше, тогда не будет конфликтов имен, потому как std::SuperInt и mynamespace::SuperInt это разные типы данных.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 18.09.2011, 12:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я себе выбрал VS2010 For Students. Скачал с оффициального сайта Микрософта. пока не жалуюсь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2011, 13:08   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
Суть в том, что в поставках этих IDE файлы могут называться не так как в книге.
Не правда.

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
В MSVS и Qt Creator этот файл называется просто iostream - без расширения, а в Code::Blocks и Dev-C++ он вроде как называется iostream.h.
Тоже не правда.
Есть стандарт, который говорит, что файлы стандартной библиотеки называются <X>, а не <X.h>. То, как он называется на самом деле зависит не от среды, а от компилятора. Code::Blocks по умолчанию использует GCC, который давно соответствует стандарту, относительно именования файлов стандартной библиотеки.
Если какой-то компилятор не поддерживает именование библиотечных фалов в новом стиле (без .h), то он, скорее всего, устарел, и пользоваться им не нужно. Тоже касается и книг, в которых написано про библиотечные файлы с *.h - выбросить и купить новую
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 18.09.2011, 16:16   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Без .h указываются родные библиотеки, с .h изменённые компилятором. Так, в CodeGear в iostream.h просто дописан using namespace std;
TwiX вне форума Ответить с цитированием
Старый 18.09.2011, 17:44   #6
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
Без .h указываются родные библиотеки, с .h изменённые компилятором. Так, в CodeGear в iostream.h просто дописан using namespace std;
Что такое "измененные компилятором библиотеки", и что такое "родные библиотеки"? Это что за доморощенные термины?!

Вопрос на самом деле заключается в том, что до принятия стандарта 2003 года, заголовочные файлы писались с расширением ".h", и пространство имен не использовалось. После введения стандарта стал вопрос, как с минимальными изменениями адаптировать библиотеки к новому станлдарту. И решили просто сохранить старые заголовки, чтобы обеспечить совместимость со старым кодом, а для нового стандарта указать заголовки без расширения ".h", которые порой являются оберткой для старого заголовка.
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
iostream latish86 Общие вопросы C/C++ 7 20.04.2010 11:57
iostream.h Mikimaus Общие вопросы C/C++ 12 15.11.2009 16:49
Опять проблемы с флешкой ((( hoza_syl Компьютерное железо 9 27.02.2009 13:58
iostream.h Raz0r Помощь студентам 2 08.04.2008 16:02