Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Почему-то string MSVC++ 6 не работает


Автор: C'hoosen++ 10.2.2004, 18:02
Вот пример:
Код

#include <iostream.h>
#include <string.h>

void main()
{
  string s = "Простой текст";
  cout<<s<<endl;
}


Почему-то в MSVC++ 6 у меня string не работает. Компилятор просто пишет, что не знает string в строке определения s. В C++ Buildere все
работает, а вот в VC++ нет, почему? Может что включить нужно?

Автор: __vi 10.2.2004, 18:30
Ага, добавь
Код

typedef char* string;

После инклудов.
...так сложно...

Автор: FreshMeat 10.2.2004, 18:37
Код
#include <iostream>
#include <string>

// .h - deprecated. Использовать не рекомендуется. Поддержка этих хедеров осуществляется для совместимости со старыми проектами

int main()
{
// необходимо явно указать пространство имен std
// либо воспользоваться директивой using. using namespace std;
   std::string s = "Простой текст";
   std::cout << s << std::endl;
}

Автор: GRON 10.2.2004, 19:15
Еще вместо того, чтобы каждый раз писать std::, добавь после инклуд-ов
Код
using namespace std

И после этого область видимости можно не указывать..

Автор: FreshMeat 10.2.2004, 19:38
Цитата(GRON @ 10.2.2004, 19:15)
Еще вместо того, чтобы каждый раз писать std::, добавь вместо инклуд-ов
Код
using namespace std


Да ну!
Код

using namespace std;

int main()
{
  string s = "Простой текст";
  cout << s << endl;
}

Ты хочешь сказать, что это работает? Проверял?
Цитата
И после этого область видимости можно не указывать..

Наверное все-таки не область видимости, а пространство имен ;)

Автор: GRON 10.2.2004, 20:03
Код
#include <iostream>
#include <string>
using namespace std;

int main(int nArg, char* pszArgs[])

{

    string s = "This is a text";
    cout << s;
    return 0;

}

Катит... Все работает.

Цитата
добавь вместо инклуд-ов

Это мой глюк. Хотел написать "после". Сорри.
PS Да, пространство имен. smile.gif

Автор: C'hoosen++ 10.2.2004, 22:59
to __vi:
biggrin.gif ...так сложно... - хе, хе ты сам понял, что написал?
Ты предлогаешь создать новый тип по имени string, но
в реальности он будет представлять обычный символь-
ный массив (или указатель на char)! Да, без сомнения,
тот кусок программы будет работать, но суть вопроса
была в том, как заставить работать сам стандартный
класс string с его удобными операциями редактирования!!!
Твой комментарий неверен (правильный овет - про прос-
транство имен ниже в теме), так что перед тем, как усме-
хнуться над вроде как глупым вопросом, читай тему внима-
тельнее и думай, что ответить!!! hmmm.gif

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