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


Автор: Timok 16.10.2007, 19:46
Здрасте  smile   У меня проблэма небольшая - 
Код

string sample = "abc";
cout << sample;
 smile 
Цитата(C++ Bulder (Borland Developer Studio 2006))
[C++ Error] Unit1.cpp(13): E2094 'operator<<' not implemented in type 'ostream' for arguments of type 'string'

Просто сегодня днём тоже самое пробовал на C++ Builder 6 - там вроде работало...

Автор: Anark1 16.10.2007, 19:49
Timok, переведи ошибку и всё станет понятно.

Автор: maxim1000 16.10.2007, 20:04
надо код полностью приводить, тогда и ошибка будет видна

Автор: Timok 16.10.2007, 20:06
Цитата(Anark1)
Timok, переведи ошибку и всё станет понятно.

нет, я понял что объект cout не содержит перегруженного оператора "<<" для работы с типом string
я только не пойму почему в одном билдере есть, в другом нет... и как тогда лучше? char *?

Цитата(maxim1000)
надо код полностью приводить, тогда и ошибка будет видна

Код
#include <iostream.h>
#include <conio.h>

using namespace std;

int main(int argc, char* argv[])
{
    string str = "abc";
    cout << str;
    return 0;
}

Автор: maxim1000 16.10.2007, 20:12
для использования string надо подключить string smile

Автор: Timok 16.10.2007, 20:19
оу шит... я - балбес...  smile 

maxim1000, спасибо  smile 

Автор: Dronchik 20.10.2007, 08:46
Timok, не забудь что string без расширения .h !

Автор: maxim1000 20.10.2007, 09:58
Цитата(Dronchik @  20.10.2007,  08:46 Найти цитируемый пост)
Timok, не забудь что string без расширения .h !

есть стандарт, а есть его реализации
так вот в некоторых старых реализациях таки применяется .h
так что если iostream.h, то и string.h
ну а в современных вариантах, конечно, без .h

Автор: Greeen 20.10.2007, 10:24
maxim1000, интересно, а как же тогда различать string.h, в котором описан std::string, и string.h, в котором описаны сишные функции работы со строками (ныне cstring)?

Автор: maxim1000 20.10.2007, 11:17
хм... не знаю :(
когда я работал на тех средах, которые используют iostream.h, я подобными вопросами не задавался smile
но вообще, действительно, странно как-то...
надо найти такую среду и посмотреть, как там эта неоднозначность разрешена...

Автор: JackYF 20.10.2007, 12:05
по новому стандарту:

#include <cstring> - сишные строки
#include <string> - c++-ные строки.

Автор: Dronchik 20.10.2007, 17:16
Лично у меня два компилятора - 98 и 2008. И там и там без расширения стринг подключается.

Автор: Maka6er 21.10.2007, 11:19
Объявить строку и использовать некоторые возможности можно не подключая <string>, а вот для вывода — необходимо.

Автор: Dronchik 21.10.2007, 13:34
А можно и вот так 
Код

char* qwerty = "ЙЦУКЕН";
cout<<qwerty;

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