Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> includes, MS 6 
V
    Опции темы
sol78
Дата 30.4.2008, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



сколько времени работаю в MS 6 ни как не могу понять как и почему нужно использовать 
стандартные библиотеки, а именно  их вклучения
Вот наример:
Я хочу использовать и библиотеку string & iostream
я пишу так:
Код

#include <iostream>
#include <string>
use namespase std;

вылетает на компиляции
RTOC.CPP
X.CPP
d:\microsoft visual studio\vc98\include\iosfwd(145) : error C2143: syntax error : missing ';' before '='
d:\microsoft visual studio\vc98\include\iosfwd(147) : error C2059: syntax error : '=='
d:\microsoft visual studio\vc98\include\iosfwd(149) : error C2059: syntax error : '<'
d:\microsoft visual studio\vc98\include\iosfwd(169) : error C2059: syntax error : '=='

откуда этот include \ iosfwd - я его не делала, интересное дело отлично компелириется в MS 2005
Что делать?
И так вооще  в этом разобраться???
PM MAIL   Вверх
vinter
Дата 30.4.2008, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



namespace
правда в 6 вижуале не поддерживается стандарт и нет namespace'ов


--------------------
Мой блог
PM MAIL WWW   Вверх
MAKCim
Дата 30.4.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(sol78 @  30.4.2008,  17:18 Найти цитируемый пост)
я пишу так:

Код

using namespace std;



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
sol78
Дата 30.4.2008, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



извините за опечатку д/б
Код

#include <iostream>
#include <string>
using namespace std;


вопрос остался!

Добавлено через 2 минуты и 7 секунд
vinter,  так я в визуале 6 и работаю, как быть?
PM MAIL   Вверх
vinter
Дата 30.4.2008, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(sol78 @  30.4.2008,  18:38 Найти цитируемый пост)
vinter,  так я в визуале 6 и работаю, как быть?

меняй компилятор smile
Код

#include <iostream.h>

как там обозвали string я не знаю


--------------------
Мой блог
PM MAIL WWW   Вверх
sol78
Дата 30.4.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



не помогло, колличество ошибок увеличелось в 2 раза(((
Хелп! кто то еще пишет в MVS 6????
PM MAIL   Вверх
d06osipov
Дата 1.5.2008, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 1.11.2006

Репутация: нет
Всего: нет



Приведи код который до #include <iostream> в X.CPP. Из-за него могут быть какие угодно ошибки во вклбючаемых файлах.
PM MAIL   Вверх
sol78
Дата 10.5.2008, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



d06osipov, незнаю поможет ли
Код

#ifndef _RTOC
#define _RTOC

#define MAXSIZE 100

#include "Registration.h"
#include <iostream>
и так далее....

PM MAIL   Вверх
vinter
Дата 10.5.2008, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



#include <iostream.h>


--------------------
Мой блог
PM MAIL WWW   Вверх
sol78
Дата 10.5.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



vinter, не пологло колличество ошибок увеличелось до 57 smile 
PM MAIL   Вверх
bronislav
Дата 10.5.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



А весь код выложить слабо?

Только атачем пожалуйста.


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Ln78
Дата 11.5.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: 13
Всего: 15



sol78
сейчас в один из файлов в проекте для VS6 включил 
Код

#include <iostream>
#include <string>

using namespace std; 

без всяких дополнительных расширений, для верности дописав в одной из функций 
Код

    string s = "TTT";

оттранслировалось без единого замечания. Вероятно, причина в чём-то другом, возможно, в
#include "Registration.h"

Это сообщение отредактировал(а) Ln78 - 11.5.2008, 13:33
PM MAIL   Вверх
bronislav
Дата 11.5.2008, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Цитата(Ln78 @  11.5.2008,  13:32 Найти цитируемый пост)
оттранслировалось без единого замечания. Вероятно, причина в чём-то другом, возможно, в
#include "Registration.h"


Ну тогда выложи этот файл. В нем могут быть ошибки или не правильно настроенные зависимости в MS VC6


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
sol78
Дата 11.5.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



ок выкладываю все, т.к. потеряла всякую надежду(((

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  RTOC.rar 589,30 Kb
PM MAIL   Вверх
Fazil6
Дата 11.5.2008, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(vinter @  30.4.2008,  17:25 Найти цитируемый пост)
правда в 6 вижуале не поддерживается стандарт и нет namespace'ов

чивоооо???
код я не скачивал и не смотрел но есть подозрение, что это 
Код

#include <iostream>
#include <string>
using namespace std;

написано в хедере, что является источником вот таких ошибок. По коду всегда должно быть так, что после using namespace не должно быть никаких инклудов так как он будет и на код этих инклудов влиять. Вообще что за мода юзать using namespace ? Неужели так сложно набрать std::  ?

Это сообщение отредактировал(а) Fazil6 - 11.5.2008, 21:40
PM MAIL   Вверх
vinter
Дата 11.5.2008, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(Fazil6 @  11.5.2008,  22:38 Найти цитируемый пост)
чивоооо???


Цитата
правда в 6 вижуале не поддерживается стандарт и нет namespace'ов

smile может с каким нибудь SP это и поправили, но это есть факт. Стандарт был принят в 99 году, а вижуал 98 года выпуска.



--------------------
Мой блог
PM MAIL WWW   Вверх
Earnest
Дата 12.5.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Стандарт действительно поддерживается не полностью, но namespace точно есть.


--------------------
...
PM   Вверх
sol78
Дата 12.5.2008, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



прошу вас по делу, господа, почему код не компилится?
PM MAIL   Вверх
vinter
Дата 12.5.2008, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



извиняюсь что неточно выразился, ничего в std неймспейс не обернуто, т.е при подключениии iostream не надо using делать.


--------------------
Мой блог
PM MAIL WWW   Вверх
Lazin
Дата 12.5.2008, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Fazil6 @  11.5.2008,  21:38 Найти цитируемый пост)
код я не скачивал и не смотрел но есть подозрение, что это 

Код

#include <iostream>
#include <string>
using namespace std;


написано в хедере, что является источником вот таких ошибок. По коду всегда должно быть так, что после using namespace не должно быть никаких инклудов так как он будет и на код этих инклудов влиять. Вообще что за мода юзать using namespace ? Неужели так сложно набрать std::  ?

код скачал - так и есть, написано это в хэдэре,
весь код смотреть не стал, так как там куча каких-то диких макросов, нечитабельно, по крайней мере за разумное время smile 
PM MAIL Skype GTalk   Вверх
Fazil6
Дата 12.5.2008, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



1. Убрать из хедера using . Ошибка не от этого, но по любому это очень плохо и дальше вылезет.
2. Вообще-то имена, которые начинаются с подчеркивания по стандарту очень сильно нерекомендуются. А еслри это еще к тому же макрос
Код

#define _X

то пеняй на себя. Короче в X.h определен такой макрос и поэтому имеешь, то что имеешь
PM MAIL   Вверх
Ln78
Дата 12.5.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: 13
Всего: 15



sol78, во вложении несколько подкорректированный код, который компилируется под 6-ю студию.

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  RTOC.rar 142,03 Kb
PM MAIL   Вверх
just_geek
Дата 12.5.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 309
Регистрация: 13.12.2007

Репутация: 2
Всего: 10



Цитата

может с каким нибудь SP это и поправили, но это есть факт. Стандарт был принят в 99 году, а вижуал 98 года выпуска.

Не исправляли, стандарт более менее вменяемо стал поддерживатся только в 7.1, Стандарт был принят в 98 году, и визуал вышел в 98 году, только на полгода раньше чем стандарт.
PM MAIL   Вверх
sol78
Дата 14.5.2008, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



Ln78,  он не компелируется!!!!!!!!!
Помогите!!!!!!!!!!!!!!!!! smile

Добавлено через 5 минут и 2 секунды
Все теже 4 ошибки:
Compiling...
X.CPP
d:\microsoft visual studio\vc98\include\iosfwd(145) : error C2143: syntax error : missing ';' before '='
d:\microsoft visual studio\vc98\include\iosfwd(147) : error C2059: syntax error : '=='
d:\microsoft visual studio\vc98\include\iosfwd(149) : error C2059: syntax error : '<'
d:\microsoft visual studio\vc98\include\iosfwd(169) : error C2059: syntax error : '=='
Error executing cl.exe.
PM MAIL   Вверх
Ln78
Дата 15.5.2008, 05:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: 13
Всего: 15



Цитата(sol78 @  14.5.2008,  21:55 Найти цитируемый пост)
Ln78,  он не компелируется!!!!!!!!!
Помогите!!!!!!!!!!!!!!!!! 

Как не компилируется? У меня всё скомпилировалось: я и перед тем, как поместить сюда проверил, сейчас скачал именно этот архив ещё раз и проверил, всё без ошибок и замечаний. Проверял на 6-й студии, т.е. использовал RTOC.dsw и RTOC.dsp. Вы "Rebuild All" делать пробовали? Указанные ошибки были когда в X.h было:
Код

#ifndef _X
#define _X

После замены на 
Код

#ifndef _CLASS_X
#define _CLASS_X

у меня ошибки пропали. Попробуйте вместо _CLASS_X написать что-нибудь подлиннее и уникальнее
PM MAIL   Вверх
dizzy1984
Дата 15.5.2008, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: 3
Всего: 25



Вот код из замечательного файла iosfwd
Код

template<> struct  char_traits<wchar_t> {
        typedef wchar_t _E;
        typedef _E char_type;   
        typedef wint_t int_type;
        typedef streampos pos_type;
        typedef streamoff off_type;
        typedef mbstate_t state_type;
        static void __cdecl assign(_E& _X, const _E& _Y)
                {_X = _Y; }
        //...
        };

Он включается в rtoc.h посредством строки
Код

#include <string>

В свою очередь, rtoc.h, не будучи глупым хидером, включается в x.h, включенный в начале файла x.cpp
Код

#include "X.h"

Интересный момент заключается здесь в препроцессорной директиве, расположенной в начале файла x.h. Это
Код

#ifndef _X
#define _X

Теперь переведем свой взор на код в начале этого поста. Что же будет с этим кодом если он попадет под действие макроса #define _X? Давайте проверим. Компилируем файл x.cpp с включенной директивой /P (генерация исходного текста после препроцессора). Посмотрите только как упростилась наша шаблонная специализация!
Код

template<> struct  char_traits<wchar_t> {
        typedef wchar_t _E;
        typedef _E char_type;   
        typedef wint_t int_type;
        typedef streampos pos_type;
        typedef streamoff off_type;
        typedef mbstate_t state_type;
        static void __cdecl assign(_E& , const _E& _Y)
                { = _Y; }
        //...

Теперь можно осмыслить сказанное компилятором предложение
Цитата

c:\program files\microsoft visual studio\vc98\include\iosfwd(145) : error C2143: syntax error : missing ';' before '='

Хотя раньше, показанное на неизуродованном теле iosfwd, оно могло вызывать лишь удивление.
Мораль заключается в том, что короткие имена макросов в плане разрушительности можно сравнить с ОМП и пользоваться ими, пожалуй, не стоит вовсе.
Немного еще по теме...
Посты vinter,а меня озадачили
Цитата(vinter @  30.4.2008,  20:21 Найти цитируемый пост)
меняй компилятор 

код C++    
1:    
#include <iostream.h>    

как там обозвали string я не знаю

и
Цитата(vinter @  12.5.2008,  01:44 Найти цитируемый пост)
может с каким нибудь SP это и поправили, но это есть факт. Стандарт был принят в 99 году, а вижуал 98 года выпуска.

На сколько я знаяю, существует 2 стандарта c++ - 98 и 2003 годов. А 98 студия была доделана в 97-году, но по коммерческим причинам поступила в продажи в 98-м. Так что стандарту она не соответствует, но довольно близка к нему и несомненно там есть и iostream и string и чего только нет. Подозреваю, что ей пользуются до сих пор и довольно успешно...
Цитата(vinter @  12.5.2008,  11:54 Найти цитируемый пост)
извиняюсь что неточно выразился, ничего в std неймспейс не обернуто, т.е при подключениии iostream не надо using делать.

Снова AFAIK в случе отсутствия объявления какого-то namespace, using namespace <имя> просто не даст никакого эффекта, т.е будет безвредна.
Ну и теперь призы. Первый приз выигрывает Fazil6, он даже без кода угадал проблему.
Второй приз идет Ln78, он исправил текст.
Цитата(sol78 @  14.5.2008,  23:55 Найти цитируемый пост)
Ln78,  он не компелируется!!!!!!!!!

Дай угадаю - ты компилируешь свой неисправленный вариант?
Кстати, 
Цитата(Fazil6 @  12.5.2008,  12:15 Найти цитируемый пост)
 Вообще-то имена, которые начинаются с подчеркивания по стандарту очень сильно нерекомендуются

у меня вопрос. Под именами что подразумевается?

Так, ну я бы еще пописал, но чуствую что наверно хватит.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1342 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.