Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам, всё собранное уйдет либо на оплату сервера, либо модераторам на шоколадки

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 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
Сообщений: 533
Репутация: 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,210
Репутация: 3076
По умолчанию

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

Код:

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


14:05.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


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