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

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

04.05.2009, 23:47. Показов 3143. Ответов 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
1465 / 966 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru