0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
1

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

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

Author24 — интернет-сервис помощи студентам
Как считать допустим целую фамилию из входного файла в лист типа стринг, можно ли это сделать не посимвольно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2014, 18:32
Ответы с готовыми решениями:

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

считать из входного файла запись многочлена и сформировать список!!
Помогите, плиз!! Нужно написать процедуру, которая считывает из входного файла безошибочную запись...

Как считать 5 и 8 слово из файла
Дан файл. Как считать пятое и восьмое слово из него?

Как считать слово из файла
Всем привет! Думаю по заголовку всё понятно... подскажите как считать из файла слово, и если не...

11
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
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
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
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
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
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
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
23.11.2014, 21:49  [ТС] 5
Renji, а как в цикле указать считывание файла не до конца, а до символа '\n'?
0
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
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
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
23.11.2014, 21:55  [ТС] 7
Nosey, еще надо же '\n' в getline дописать
0
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
23.11.2014, 21:57 8
Цитата Сообщение от IProvokator Посмотреть сообщение
Nosey, еще надо же '\n' в getline дописать
Не понимаю, о чём вы.
0
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
23.11.2014, 21:58  [ТС] 9
Я понимаю, что можно взять и всю первую строку getline-ом в стринг закинуть, но моя задача потом из этого стринга по одному слову затолкать в лист из стрингов, не совсем понимаю, как это реализовать

Добавлено через 1 минуту
Мне дана такая задача, есть файл в нем в первой строчки какие-то слова, и во второй строчки какие то слова. Вот мне нужно каждое слово из первой строчки затолкать в лист из стрингов, аналогично для второй строчки, только для другого листа
0
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
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
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 43
23.11.2014, 22:21  [ТС] 11
а почему заводим лист от листа?
0
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
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
23.11.2014, 22:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2014, 22:26
Помогаю со студенческими работами здесь

Как считать из файла в массив типа int
Подскажите как считать из файла в массив nbgf, если есть разделитель | ifstream...

Как считать слово из файла в поле структуры до запятой?
есть текстовый файл Петров, Иван, Федорович, 1, 1994,Ч ; Сидоров,Петр,Михайлович, 2, 1994,Ч ;...

Считать из файла и записать в лист
Нужно считать из текстового файла значения и записать их в лист, чтобы каждое значение записывалось...

Считать из входного файла литеры до первой точки и записать их в текстовый файл (по 40 литер в строке)
Описать процедуру Line40(f), которая считывает из входного файла литеры до первой точи и записывает...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru