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

Вывод string из list

16.09.2012, 19:02. Показов 3418. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть некий класс.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class human
{
public:
string name;
int age;
};
 
int main ()
{
human one, two;
one.name="AnyName"; heal.name="AnyName";
one.age=10; two.age=5;
list<string> names;
list<int> ages;
names.push_back (one.name);
names.push_back (two.name);
costs.push_back (one.ages);
costs.push_back (two.ages);
 
cout << "Names contains: ";
for (list<string>::iterator it=names.begin(); it!=names.end(); ++it)
cout<<" "<<*it);
 
cout<<endl;
 
cout << "Costs contains:";
for (list<int>::iterator it=ages.begin(); it!=ages.end(); ++it)
cout<<" "<<*it);
 
getch();
};
В результате список ages выводится нормально, а names не выводится вообще, хотя при построчном выполнении видно что все нормально записано. Как правильно организовать вывод?
Win7, VS2008.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2012, 19:02
Ответы с готовыми решениями:

Записать в файл list (очередь) объектов, в которых содержатся строки string, и считать с файла обратно в list
Извините подскажите пожалуйста, как записать list(очередь) объектов в которых содержаться string, и считать с файла обратно в list;...

Как используя C-String а потом и String class варьировать вывод?
Дана задача: при вводе полного И.О.Ф. (в таком порядке) выводить Ф, И и О(только первую букву и .). И если О не задано - выводить только...

List, string, файл
Всем привет! Есть текстовый 8 math +43.5hjti 34 ). Как сделать так чтобы программа вывела содержимое файла (не хочет выводить...

6
51 / 49 / 7
Регистрация: 31.10.2011
Сообщений: 98
16.09.2012, 19:38
Вообще, этот код компилироваться не должен - много ошибок (типа неизвестного heal в 11 строке, закрывающейся скобки в 22).
Ваш способ вывода строк вполне нормальный, единственное - в обоих случаях в цикле я бы использовал const_iterator вместо iterator.
0
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 24
16.09.2012, 19:55  [ТС]
Код печатал вручную(не копипастой из VS), поэтому и ошибки, так-то все компилировалось, но не выводилось. Да и сейчас на выводе в names нет ничего.

А вместо

Цитата Сообщение от Oktaram Посмотреть сообщение
heal.name="AnyName";
должно быть two.name, думаю это очевидно.

Цитата Сообщение от serejkus Посмотреть сообщение
я бы использовал const_iterator вместо iterator
А почему?

Добавлено через 8 минут
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::basic_string<_Elem,_Traits,_Ax>' (or there is no acceptable conversion)

Ругается компилятор. Если заменить cin на printf() не ругается, но ничего не делает.
0
 Аватар для kotleta
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
16.09.2012, 19:55
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <list>
 
using namespace std;
 
class human
{
    public:
        string name;
        int age;
};
 
int main ()
{
 human one, two;
 
 one.name="Denis"; two.name="Valera";
 one.age=14; two.age=-5;
 
 list <string> names;
 list <int> ages;
 
 names.push_back (one.name);
 names.push_back (two.name);
 ages.push_back (one.age);
 ages.push_back (two.age);
 
 cout << "Names contains: ";
 for (list<string>::iterator it=names.begin(); it!=names.end(); ++it)
 cout<<" "<<*it;
 
 cout<<endl;
 
cout << "Costs contains:";
for (list<int>::iterator it=ages.begin(); it!=ages.end(); ++it)
cout<<" "<<*it;
 
int i;
cin >> i;
 
return 0;
};
Теперь работает.
Не знает, может вы тоже программы по ночам пишете)))
У вас все логически правильно написано, но в синтаксите я обнаружил кучу недекларированных переменных..
0
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 24
16.09.2012, 19:57  [ТС]
Скопировал, запустил, но оно не компилится... >_<
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::basic_string<_Elem,_Traits,_Ax>' (or there is no acceptable conversion)

P.S. По ночам, да)
0
 Аватар для kotleta
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
16.09.2012, 20:02
Добавьте #include <string>

Добавлено через 1 минуту
Ваш компилятор пишет no operator found which takes a right-hand operand of type 'std::basic_
Это значит "не найден оператор, который использует правый операнд типа std::basic_string

В вашем классе
name объявлена как тип string

Вам нужно подключить #include <string>
1
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 24
16.09.2012, 20:06  [ТС]
А слона-то я и не заметил...
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2012, 20:06
Помогаю со студенческими работами здесь

Вывод элементов map <string,vector<string>>
Доброго времени суток. Как можно вывести массив map &lt;string,vector&lt;string&gt;&gt; mp ? Могу только предположить, что нужно как-то...

Вывод содержимого map<string, set<string>>
Необходимо реализовать серверную часть словарика синонимов, где внесение синонимов имеет формат 'Set &lt;Word1&gt; &lt;Word2&gt;', а вывод...

Как вывести list<string>?
list&lt;string&gt; the_list_input;

Удаление vector, list, string
Привет! Такая задача. В программе я описал класс Class1. Класс содержит поля стандартных типов, а также поле std::string и...

Как вывести в файл list<string>?
как вывести в файл список (list)? string symbol; list&lt;string&gt; the_list_input;


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
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 https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru