Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > using namespace std;


Автор: [m][a][n] 12.9.2004, 11:41
Всем Добрый День!
Значит компилятор:
Microsoft Visual C++
Проблема:
Пишу using namespace std;
p.s.: типа новый стандарт (помойму)
При компиляции следующая ошибка:
'std' : does not exist or is not a namespace
Почему так?


Автор: chipset 12.9.2004, 11:43
Может ты не проинклудил какой нибудь хидер std, (iostream попробуй)

Автор: [m][a][n] 12.9.2004, 14:35
Если я тебя правельно понял, то с этим всё окей:
Вот:

#include <iostream.h>
#include <stdio.h>

Но почему то, опять всё тоже самое, возникает таже самая ошибка.

Вот точный код который почему то, не удается скомпилить:

#include <iostream.h>
#include <stdio.h>

using namespace std;
void main()
{

}

Автор: Gabryael 12.9.2004, 14:50
Цитата
[a][n],12.9.2004,  14:35]Если я тебя правельно понял, то с этим всё окей:
Вот:

#include <iostream.h>
#include <stdio.h>

Но почему то, опять всё тоже самое, возникает таже самая ошибка.

Вот точный код который почему то, не удается скомпилить:

#include <iostream.h>
#include <stdio.h>

using namespace std;
void main()
{

}


А ты попробуй вместо:
#include <iostream.h>
написать
#include <iostream>

Автор: [m][a][n] 12.9.2004, 14:57
Большое спасибо!
Всё отлично работает!
А ради интересса какая раздница между?:
#include <iostream.h>
и
#include <iostream>

Автор: Gabryael 12.9.2004, 15:14
Цитата
[a][n],12.9.2004,  14:57]Большое спасибо!
Всё отлично работает!
А ради интересса какая раздница между?:
#include <iostream.h>
и
#include <iostream>


Пожалуйста.

В <iostream.h> все имена объявлены в глобальной области видимости (кстати еще один вариант решения твоей проблемы - убрать using namespace std), а в <iostream> скорее всего присутствуют такие строки:

namespace std
{
#include <iostream.h>
}


P.S. В стандарте С++ ничего не сказано по поводу <iostream.h>, поэтому лучше использовать первый вариант.

Автор: [m][a][n] 12.9.2004, 15:23
Ясно!
Большое спасибо!

Автор: Anklav 13.9.2004, 00:28
Кстати, по "новому" стандарту все сишные заголовочные файлы (т.е. stdio.h, stdlib.h, string.h ...) имеются в библиотеке Си++, но только под другими именами: cstdio, cstdlib, cstring, ... -- и все функции и переменные находятся в пространстве имён std

Код

#include <cstdio>

int main() {
std::printf("hello\n");
return 0;
}

Автор: [m][a][n] 14.9.2004, 18:42
ООО СПАСИБО!
Я ОБ ЭТОМ НЕ ЗНАЛ, ПРИЧЕМ СЕРЬЕЗНО НЕ ЗНАЛ!

Автор: [m][a][n] 14.9.2004, 20:17
Странно:
1) Либо ошибка в этом коде
2) Либо так и должно быть
3) Либо что-то у меня
Вобщем у меня этот пример не копмилировается
Как думаете почему так?

Автор: chipset 15.9.2004, 00:45
[m][a][n]
Ну хоть напиши с какой ошибкой он не компилируется sad.gif

Автор: [m][a][n] 15.9.2004, 19:25
Если я вставляю этот код и компилю то вот что:
error C2653: 'std' : is not a class or namespace name

Если дописываю:
using namespace std;

То вижу две ошибки:
error C2871: 'std' : does not exist or is not a namespace
error C2653: 'std' : is not a class or namespace name

Хотя незнаю, это может быть что-то у меня...

Автор: Anklav 16.9.2004, 00:25
Скорей всего у тебя компилятор старый. Тот, что был сделан ещё до того как был принят стандарт (а он был принят в 98 году). Естественно это только предположение. Код, что предложил, я перепроверил - всё работает (у меня gcc версии 3.3.2).

Автор: [m][a][n] 16.9.2004, 13:49
У меня Visual C++ 6 (если делать по простому, то я просто создаю файл .cpp и пишу в этот файл код)
Visual C++ 6 - это старый компилятор?
p.s.: просто интерестно

Автор: Gabryael 16.9.2004, 16:22
Цитата
У меня Visual C++ 6 (если делать по простому, то я просто создаю файл .cpp и пишу в этот файл код)
Visual C++ 6 - это старый компилятор?
p.s.: просто интерестно

Это старый компилятор. Просто супер старый компилятор из прошлого века....
Найди MSVC 7.1, или Visual C++ 2005 Express Beta...

Автор: DENNN 16.9.2004, 16:31
Только не надо гнать на VC6.
Это очень хороший компилятор и очень хорошая среда разработки, в ней сделано столько, что неизвестно догонит ли его в принципе VC7.1.

А не находится это пространство имен скорей всего потому, что заголовочных файлов найти не может или не хватает.

Попробуй написать
Код

#include <iostream.h>
#include <stdio.h>

include <vector>
void main()
{

}

Если опять не найдет, то это именно тот случай.

Автор: Gabryael 17.9.2004, 14:45
Цитата(DENNN @ 16.9.2004, 16:31)
Только не надо гнать на VC6.

А никто и не гонит. Я ответил на вопрос.
Цитата(DENNN @ 16.9.2004, 16:31)
Это очень хороший компилятор и очень хорошая среда разработки....

По поводу среды разработки я умолчу, а по поводу компилятора - это один из самых худших компиляторов C++ на win32. В противоположность ему, VC 7.1 - один из лучших компиляторов вообще и лучший на win32 в частности.

Автор: [m][a][n] 17.9.2004, 14:51
Понятно.....
Под новым компилятором нужно будет писать уже новым стилем?

Автор: DENNN 17.9.2004, 16:51
Не нужно ничего писать новым стилем.
C++ язык стандартизированный и от компилятора не зависит.

Автор: mr.DUDA 18.9.2004, 09:26
Далековато ушли от темы обсуждения... Просьба не флеймить !

Автор: AlexNor 24.9.2004, 19:15
Цитата

C++ язык стандартизированный и от компилятора не зависит.


adv/91.gif adv/91.gif adv/91.gif

З.Ы. без коментов - кому нужно тот поймёт..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)