C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ifstream >> AnsiString, чтение из потока в AnsiString
Benish
Отправлено: 03.12.2004, 13:08


Дежурный стрелочник

Группа: Участник
Сообщений: 67



Господа, подскажите!

Пишу:

CODE

#define VCL_IOSTREAM
#include<iostream.h>
#include <dstring.h>
AnsiString ASfstr;
......
while (!in.eof()) in >> ASfstr;


компилятор говорит:

operator>> not implemented для AnsiString

в хелпе говорится:

Note To utilize the C++ streaming operators (<< and>>) with AnsiString, you must use #include or #define VCL_IOSTREAM before #include . This occurs automatically if you include vcl.h or system.h and defines the operators as follows:
ostream& operator << (ostream& os, const AnsiString& arg);
istream& operator>> (istream& is, AnsiString& arg);

Видимо я чего-то не понимаю????
Benish
Отправлено: 06.12.2004, 13:29


Дежурный стрелочник

Группа: Участник
Сообщений: 67



Хм, как я понимаю, надо было самому перегрузку писать, типа:

CODE

istream & operator>>(istream & in, AnsiString & str)
{
 std::string inputString;
 in >> inputString;
 str = AnsiString(inputString.c_str());
 return in;
}


А чего же сами создатели AnsiString этого не сделали????
Георгий
Отправлено: 06.12.2004, 18:41


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



надо define VCL_IOSTREAM написать ДО любых #include, в том числе и до #include  — тогда и заработает.

Вернуться в Вопросы программирования в C++Builder