Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 10.10.2007, 13:55   #1
che
Новичок
 
Регистрация: 09.10.2007
Сообщений: 2
Репутация: 10
Смущение использование 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
Репутация: 54
По умолчанию

ответ 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
Сообщений: 532
Репутация: 371
По умолчанию

Цитата:
#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
Репутация: 10
По умолчанию

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

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

Код:

#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
Репутация: 65
По умолчанию

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,338
Репутация: 516

skype: gladkov_3dfan
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование *.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 20:54


20:35.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru