Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
58 / 35 / 0
Регистрация: 08.04.2008
Сообщений: 153

Структура и класс string. Проблема с выводом строки.

04.05.2009, 23:47. Показов 3114. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такая проблема: объявляю структуру с классом string:

C++
1
2
3
4
5
struct exam
{
    std::string name;
    ...
};
Затем объявляю переменную и присваю значения :

C++
1
2
3
4
5
exam prim = 
    {
        "line",
        ...
    };
Затем пытаюсь вывести строку:

C++
1
cout<<prim.name;
В этом месте компилятор выдает ошибку:
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)
Не могу понять в чем проблема. Использую MS Visual Studio 2008.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.05.2009, 23:47
Ответы с готовыми решениями:

Проблема с выводом строки
#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;conio.h&gt; #define SIZE 100 using namespace std; class Adress { char fam; ...

Класс string, убрать звездочки из строки
заполнил переменную S1 значениями 1, 0 и '*' Например вывод этой переменной: 0*11 11*0 0**1 я хочу записать новую переменную S2...

От класса String наследовать новый класс, который имеет проверку на превышение размера строки
Доброго времени суток! Решаю задачи из учебника Роберта Лафоре ООП в C++. До этой задачи все решал сам и успешно, а тут встал в...

12
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
05.05.2009, 00:28
Если только в VS и g++ по разному std::string реализован. В g++ все будет работать.
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
05.05.2009, 00:44
Не могу понять в чем проблема. Использую MS Visual Studio 2008.
это компилятор в мягких выражениях пытается намекнуть, что ты накосячил с неизвестным типом.
Более подробно это сообщение следует читать так: "Какого *** ты мне подсунул какое-то ****** в виде std::string??? Я, ***, знать про него нисего не знаю, насяльника!!! Инклюда хде, насялника!!!"
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
05.05.2009, 01:02
Rififi, это сообщение значит, что для типа std::string не определен оператор <<. А в VS для std::string что-то еще подключать надо? А разве не выдал бы он тогда ошибку еще на строке
C++
1
std::string name;
что тип неизвестный?
1
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
05.05.2009, 01:05
Vourhey,
точнее,не сам тип неизвестен, а отсутствует оператор << для этого типа.
для std::string надо подключать <string>
1
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
05.05.2009, 01:10
Цитата Сообщение от Rififi Посмотреть сообщение
Vourhey,
точнее,не сам тип неизвестен, а отсутствует оператор << для этого типа.
для std::string надо подключать <string>
А, по-моему, этот модуль просто содержит функции для работы со строками. Безо всяких классов. Хотя, может, и иначе...
0
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
05.05.2009, 01:17
Он содержит перегрузку оператора "<<"
C++
1
2
3
4
5
6
7
8
template<class _Elem,
    class _Traits,
    class _Alloc> inline
    basic_ostream<_Elem, _Traits>& __CLRCALL_OR_CDECL operator<<(
        basic_ostream<_Elem, _Traits>& _Ostr,
        const basic_string<_Elem, _Traits, _Alloc>& _Str)
    {   // insert a string
...................
1
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
05.05.2009, 01:20
Vourhey,
А, по-моему, этот модуль просто содержит функции для работы со строками. Безо всяких классов. Хотя, может, и иначе...
ХЗ. что именно там я не знаю, да мне оно собственно и неинтересно, достаточно что по Стандарту:
The header <string> defines the basic_string class template for manipulating varying-length sequences of charlike objects ...
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
05.05.2009, 01:21
Отлично. Значит, в VS вот так. Я в g++ и без <string> обхожусь ))

Добавлено через 37 секунд
Rififi, хорошо-хорошо )) basic_string, все равно, вроде как абстрактный, так что, это так...
Стандарт с большой буквы написал Стандарта нет. Есть компиляторы.

Вообще очень умно тогда это все сделано, тип у нас виден, а его функции не видны. Пипец. Если это в VS действительно так работает, то это весело очень. Если наш string наследник от basic_string, то все его функции должны быть в области видимости безо всяких подключений string.
Забавно все сделано, класс виден, а некоторые операций недоступны. Глупо...
0
58 / 35 / 0
Регистрация: 08.04.2008
Сообщений: 153
05.05.2009, 06:06  [ТС]
Цитата Сообщение от Vourhey Посмотреть сообщение
А разве не выдал бы он тогда ошибку еще на строке
C++
1
std::string name;
что тип неизвестный?
Нет, не выдало, вот это и сбило. Все моя невнимательность. Спасибо всем за помощь.
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
05.05.2009, 08:57
cout определен в пространстве имен std, так что нужно писать так:
std::cout<<prim.name;
(если конечно не подключено пространство имен при помощи using namespace)
0
58 / 35 / 0
Регистрация: 08.04.2008
Сообщений: 153
05.05.2009, 23:16  [ТС]
Haster, проблема решена, проблема не в этом.
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
06.05.2009, 09:38
Ок, я уже понял )))
Просто изначально не стал читать всю ветку сообщений )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2009, 09:38
Помогаю со студенческими работами здесь

Пользовательский класс String: реализовать копирование строки и вывод её на консоль (найти ошибки в коде)
Привет. Мне нужен ответ: я дурак, или это c++ подвел (естественно первое:)). Я решил попрактиковаться и написать собственный класс string,...

Проблема с выводом строки
В программе нужно вводить предложение, определять максимальное и минимальное по длине слова и менять их местами. Поиск max и min сделал, но...

Проблема с выводом строки через USART
Пытаюсь пока вывести строку символов на терминал по примеру отсюда...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Здравствуйте! По C# есть задачка, с которой я так и не разобрался :( Задача: Создайте класс Animal. Добавьте поля string...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population. Создание объектов может происходить как без...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru