Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / EAccessViolation при работе с cout. / 7 сообщений из 7, страница 1 из 1
22.01.2007, 21:42
    #34273570
CoutProblem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EAccessViolation при работе с cout.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#include <iostream>
#include <string>
using namespace std;
#pragma argsused
int main(int argc, char* argv[])
{
string s="aaa";
cout << s << endl;
return 0;
}
//------

В строке cout << s << endl; EAccessViolation.
Если заменить "cout << s << endl;" на "cout << s.c_str()<< endl;", EAccessViolation не возникает.

Какие будут соображения?
...
Рейтинг: 0 / 0
22.01.2007, 21:45
    #34273573
CoutProblem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EAccessViolation при работе с cout.
CoutProblem//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#include <iostream>
#include <string>
using namespace std;
#pragma argsused
int main(int argc, char* argv[])
{
string s="aaa";
cout << s << endl;
return 0;
}
//------

В строке cout << s << endl; EAccessViolation.
Если заменить "cout << s << endl;" на "cout << s.c_str()<< endl;", EAccessViolation не возникает.

Какие будут соображения?

Забил сказать, ошибка возникает в C++ Builder'e.
В Dev-C++, к примеру, такой нет.
...
Рейтинг: 0 / 0
22.01.2007, 22:55
    #34273644
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EAccessViolation при работе с cout.
незнаю че у тебя за траблы, я сделал File-new-other-consolewizard
потом вставил твой код и все нормально откомпилило и запустило без аксесов
...
Рейтинг: 0 / 0
22.01.2007, 22:58
    #34273647
sashka304
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EAccessViolation при работе с cout.
а вообще зачем ты #include <vcl.h> написал, оно и без ВЦЛ работает
...
Рейтинг: 0 / 0
22.01.2007, 23:41
    #34273685
CoutProblem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EAccessViolation при работе с cout.
sashka304а вообще зачем ты #include <vcl.h> написал, оно и без ВЦЛ работает

Bez <vcl.h> -> [linker error].
U menja, lichno, podozrenie chto kakie-to problemi s opcijami, sam code v porjadke.
...
Рейтинг: 0 / 0
23.01.2007, 09:42
    #34274116
VirtualMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EAccessViolation при работе с cout.
авторЕсли заменить "cout << s << endl;" на "cout << s.c_str()<< endl;", EAccessViolation не возникает.

Какие будут соображения?

Соображения такие, что для string не переопределен оператор "<<"
string это НЕ СТРОКА, ЭТО ОБЪЕКТ!
cout знает что делать со строкой, но не знает что делать с объектом string.
Иными словами ты "пихаешь в принтер бумагу в упаковке".

Совет: не парься, а выводи как "cout << s.c_str()<< endl;" и будет тебе счастье!
...
Рейтинг: 0 / 0
23.01.2007, 10:24
    #34274224
CoutProblem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EAccessViolation при работе с cout.
VirtualMan авторЕсли заменить "cout << s << endl;" на "cout << s.c_str()<< endl;", EAccessViolation не возникает.

Какие будут соображения?

Соображения такие, что для string не переопределен оператор "<<"
string это НЕ СТРОКА, ЭТО ОБЪЕКТ!
cout знает что делать со строкой, но не знает что делать с объектом string.
Иными словами ты "пихаешь в принтер бумагу в упаковке".

Совет: не парься, а выводи как "cout << s.c_str()<< endl;" и будет тебе счастье!

Dlja menja to chto dlja string ne pereopredelen operator<< - novostj !

Iz C++ Builder dokumentaciji.

template<class charT, class traits, class Allocator>
basic_istream<charT, traits>& operator>>
(istream&, basic_string&);
template <class charT, class traits, class Allocator>
basic_ostream<charT, traits>& operator<<
(ostream&, const basic_string&);
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / EAccessViolation при работе с cout. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]