Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IProvokator
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
#1

Как считать слово из входного файла в лист типа стринг - C++

23.11.2014, 18:32. Просмотров 887. Ответов 11
Метки нет (Все метки)

Как считать допустим целую фамилию из входного файла в лист типа стринг, можно ли это сделать не посимвольно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 18:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как считать слово из входного файла в лист типа стринг (C++):

Считать со стандартного входного потока заданное слово и набор предложений - C++
Написать программу, которая считывает со стандартного входного потока заданное слово и набор предложений, разделителями которых являются...

Как считать из файла в массив типа int - C++
Подскажите как считать из файла в массив nbgf, если есть разделитель | ifstream loader("temp.txt"); if (loader.is_open()){ char...

Как считать из файла текст в двумерный массив типа char и отсортировать в алф. порядке? - C++
Постановка задачи: Исходные данные считать из текстового файла через отдельную функцию. Дана строка символов, состоящая из...

Считать 2 слово с файла - C++
Подскажите пожалуйста как можно считать второе слово с каждой строки в файле. Заранее спасибо

Считать все слово из файла в структуру - C++
Доброго времени суток, форумчане! Есть структура struct WORKER { char FIO; char post; int year; };WORKER mas; Нужно...

Считать из файла и поменять местами максимальное и минимальное слово - C++
помогите дописать задачу...нужно считать из файли и поменять местами максимальное и минимальное слово...я поменять не могу... вот мой код ...

11
Renji
1925 / 1323 / 298
Регистрация: 05.06.2014
Сообщений: 3,808
23.11.2014, 18:46 #2
И вам переводиться с курсов "C с классами" на курсы C++.
C++
1
2
3
4
5
ifstream stream("1234.txt");
list<string> my_list;
string surname;
stream>>surname;
my_list.push_back(surname);
0
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
23.11.2014, 18:59 #3
Либо stl style
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <list>
#include <algorithm>
#include <string>
#include <sstream>
#include <fstream>
#include <iterator>
 
int main()
{
    std::ifstream file("input.txt");
    std::istream_iterator<std::string> fileBeg(file);
    std::istream_iterator<std::string> fileEnd;
    std::list<std::string> list;
    std::copy(fileBeg, fileEnd, std::back_insert_iterator<std::list<std::string>>(list));
    system("pause");
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,019
23.11.2014, 19:08 #4
Nosey, тогда уж так:
C++
1
std::list<std::string> list((std::istream_iterator<std::string>(file)), std::istream_iterator<std::string>());
1
IProvokator
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
23.11.2014, 21:49  [ТС] #5
Renji, а как в цикле указать считывание файла не до конца, а до символа '\n'?
0
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
23.11.2014, 21:54 #6
Цитата Сообщение от IProvokator Посмотреть сообщение
Renji, а как в цикле указать считывание файла не до конца, а до символа '\n'?
C++
1
2
3
    std::ifstream file("input.txt");
    std::string str;
    std::getline(file, str);
0
IProvokator
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
23.11.2014, 21:55  [ТС] #7
Nosey, еще надо же '\n' в getline дописать
0
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
23.11.2014, 21:57 #8
Цитата Сообщение от IProvokator Посмотреть сообщение
Nosey, еще надо же '\n' в getline дописать
Не понимаю, о чём вы.
0
IProvokator
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
23.11.2014, 21:58  [ТС] #9
Я понимаю, что можно взять и всю первую строку getline-ом в стринг закинуть, но моя задача потом из этого стринга по одному слову затолкать в лист из стрингов, не совсем понимаю, как это реализовать

Добавлено через 1 минуту
Мне дана такая задача, есть файл в нем в первой строчки какие-то слова, и во второй строчки какие то слова. Вот мне нужно каждое слово из первой строчки затолкать в лист из стрингов, аналогично для второй строчки, только для другого листа
0
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
23.11.2014, 22:08 #10
IProvokator,
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
#include "stdafx.h"
#include <iostream>
#include <list>
#include <string>
#include <sstream>
#include <fstream>
#include <strstream>
 
int main()
{
    std::ifstream file("input.txt");
    std::string str;
    std::list<std::list<std::string>> lllllist;
    while(std::getline(file, str))
    {
        std::stringstream strStream(str);
        std::istream_iterator<std::string> strBeg(strStream);
        std::istream_iterator<std::string> strEnd;
        std::list<std::string> list(strBeg, strEnd);
        lllllist.push_back(list);
    }
 
    system("pause");
}
Ну либо посимвольно, если это критичный к проессорному времени код, что врядли
0
IProvokator
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
23.11.2014, 22:21  [ТС] #11
а почему заводим лист от листа?
0
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
23.11.2014, 22:26 #12
IProvokator,
Да куда угодно кладите ваши листы, хоть в вектор, хоть сами динамически выделяйте память, хоть N переменных заводите.
Только я немного подговнокодил, вот так стоит делать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
#include <list>
#include <string>
#include <sstream>
#include <fstream>
#include <strstream>
 
int main()
{
    std::ifstream file("input.txt");
    std::string str;
    std::list<std::list<std::string>> lllllist;
    while(std::getline(file, str))
    {
        std::stringstream strStream(str);
        std::istream_iterator<std::string> strBeg(strStream);
        std::istream_iterator<std::string> strEnd;
        lllllist.emplace_back(strBeg, strEnd);
    }
 
    system("pause");
}
Вы получаете лист размером с количество строк в файле, с листами в которых хранятся слова в этой строке.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2014, 22:26
Привет! Вот еще темы с ответами:

Считать данные из файла в динамический массив соответствующего типа - C++
Здравствуйте. Тема динамические структуры. Считать данные из файла в динамический массив соответствующего типа. 1) В файле целых...

Считать данные из файла и записать в переменные соответствующего типа - C++
Имеется файл file.txt такого содержания(тип char*, int, float, разделенные пробелом): name 3 14.2 Как с помощью fstream считать данные из...

Считать числа типа double из файла и записать их в массив - C++
Проблема следущая: нужна программа которая считывает числа типа double из файла (в моем случае это индексы валютного курса) и записывает их...

Считать из файла данные определенного типа и записать в массив - C++
Подскажите, пожалуйста. Допустим, у меня есть файл text.txt, в котором есть цифры/буквы/символы. Задача сводится к следующему: мне нужно...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
23.11.2014, 22:26
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru