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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.10.2007, 13:55   #1
che
Новичок
Джуниор
 
Регистрация: 09.10.2007
Сообщений: 2
Смущение использование using namespace std;

всем здрасте.
предыстория
Решил самостоятельно С НУЛЯ изучить с++ по самоучителю "С++ без страха" Б. Оверленд 2005г.
Код пишу в "Borland C++ v 4.5"
Microsoft Visual C++ или Borland C++ Builder планирую начать использовать позже, когда появятся навык написания кода в простой среде разработки. чтоб ошибки программирования не путались с ошибками использования среды разработки. )) за это прошу не критиковать.

это была предыстория вопроса

вот код программы
Код:
 
#include <iostream.h>
//using namespace std;
 
int main() {
  cout << "tra-lya-lya!" << endl;
  cout << "tra-lya-lya!" << endl;
return 0;
}
вопрос 1.
using namespace std
в книгах настоятельно рекомендуют вставлять в программу эту строку. Пишут что using позволяет обращаться к обьектам например std::cout напрямую.
у меня в коде эта строка закомментирована потому что с ней не проходит компиляция. Пишет ошибка: "Declaration syntax error".
если закомментировать, то все работет нормально. при этом я же не прописываю вывод на экран std::cout хотя по книжке я именно так должен был сделать т.к. не прописал using?
в чем проблемма?

вопрос 2.
код тот же. У меня написано "iostream.h". А в книге говорят что надо писать без "*.h ", а без такого окончания опять не проходит компиляция. пишет что не может открыть файл iostream
в чем проблемма?

вопрос 3.
Еще проблемма с выводом русских букв на экран. Типа "cout << "tra-lya-lya!"". Русские ПРОПИСНЫЕ буквы отображает нормально, а строчные отображает, но не все, те которые не отбражает оставляет вместо них пробел. Еще в самом "Borland C++ v 4.5" русский текст печатается кракозябрами.
как это можно исправить?

з.ы.
извиняюсь за длинный текст. ответы по возможности излагать на языке приближенном к "русскому" с терминологией еще проблеммы.
спасибо за понимание. заранее благодарен.
che вне форума
Старый 10.10.2007, 19:36   #2
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

ответ 1
если используешь std, то нужно подключать не #include <iostream.h>, а #include <iostream>. И вобще, эту привычку, в std-ных инклудах .h добавлять лучше не заводить

ответ 2
а вот это не знаю. у меня при #include <iostream> прекрасно все работает.
хотя "Borland C++ v 4.5" у меня вызыват подозрения. ОЧЕНЬ старый, с тех пор компиляторы хорошо поменялись. лучше уж на VC 6.0 или билдере начиная с 6го пиши

ответ 3.
мой совет - пиши на инглише или транслитом.
но если хочется, то в свойствах компилятора это было, но не помню, где.
может кто другой ответит
Alek86 вне форума
Старый 10.10.2007, 21:19   #3
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
#include <string>
using namespace std; //

string ru(const string Str) {
string Result = Str;

int Len = (int)Result.size();
for (int i = 0; i < Len; i++) {
if ((Result[i] >= 'А') && (Result[i] <= 'п')) Result[i] -= 64;
if ((Result[i] >= 'р') && (Result[i] <= 'я')) Result[i] -= 16;
}

return Result;
}

cout << ru("Все работает");
Это самое простое.
still_alive вне форума
Старый 11.10.2007, 00:13   #4
che
Новичок
Джуниор
 
Регистрация: 09.10.2007
Сообщений: 2
По умолчанию

спасибо )))
che вне форума
Старый 11.10.2007, 00:26   #5
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Проще вот так:

Код:
#include<iostream.h>
#include<windows.h>

using namespace std;

void main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  cout<<"Привет"<<endl;
}
Если все равно нормально не отображается, то в том окошке, в котором запускается программа, щелкаешь правой кнопкой мышки на строку заголовка, там выбираешь Свойства, в них - Шрифты. И там выбираешь Lucida Console.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума
Старый 11.10.2007, 10:10   #6
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию

1) По всей видимости в B4.5 нет такой области имен...
2) Дело в том, что файл как ни крути называется iostream.h, просто более новые версии сред, а точнее используемые в них препроцессоры умееют подключать нужный файл без указания этой самой *.h, B4.5 этого делать не умеет. В принципе это не проблема, а естественных ход вещей.
3) Ну на третий вопрос уже ответили...Попробуй использовать функции установки кодовой таблицы
Бог сделал людей разными, а генерал Кольт уравнял шансы
studenth вне форума
Старый 11.10.2007, 13:47   #7
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

1) studenth, в B4.5 не только нет std, там вообще нет пространств имён.
using namespace std - это зло, поскольку смешивает пространство имён std:: и глобальное пространство ::. Будут у тебя 2 одинаковые функции: одна в std, а другую ты сам сделаешь. А потом будешь искать, почему компилятор на твою функцию ругается.
2) Опять же, в B4.5 нет пространств имён. Поскольку есть 2 файла: iostream.h без std и iostream с std. То у тебя iostream быть в принципе не может.
3) Такая тема уже была.
Carbon вне форума
Старый 11.10.2007, 17:13   #8
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию

Реальный ответ. Спасибо!
Никогда в глаза не видел B4.5
Я слишком молод...
Бог сделал людей разными, а генерал Кольт уравнял шансы
studenth вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование *.swf Романнн Мультимедиа в Delphi 14 02.04.2010 09:27
Использование BlockRead Никки Общие вопросы Delphi 17 22.04.2008 08:23
namespace std; lacost Общие вопросы C/C++ 8 22.10.2007 13:17
Использование длл Anatolij Win Api 1 02.01.2007 19:54