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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.95
Dewi1
0 / 0 / 0
Регистрация: 25.02.2012
Сообщений: 4
#1

С помощью cin.getline считать все строки файла в контейнер (вектор или очередь) - C++

26.02.2012, 01:02. Просмотров 2802. Ответов 2
Метки нет (Все метки)

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

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами - C++
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с тремя параметрами, как из потока достать...

Тупит cin.getline или я туплю - C++
простой пример кода на вижуал студии 2013 #include "stdafx.h" #include <iostream> #include <locale> using namespace std; ...

считывание строки cin.getline() - C++
То место, где нужно вводить фамилию, не работает, точнее, его просто пропускает :/ какие варианты решения проблемы подскажете? ...

Как с помощью getline считать двухбайтовые символы? - C++
В общем надо считать строку из файла. Если однобайтовая - всё ок. Как только wchar_t - начинается дурдом. getline в упор не видит какой...

Не работает cin.getline при считывании строки большей буфера - C++
Доброго всем времени суток!:) Проблема состоит в том, что если ввести 4 и более символов cin.getline(boofer, 3); перестаёт работать. Как я...

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода - C++
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть какие-нибудь замечания, то просьба написать что не...

2
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.02.2012, 03:08 #2
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 <vector>
#include <string>
#include <fstream>
#include <iterator>
#include <algorithm>
 
int main()
{
    std::vector<std::string> vec;
    std::ifstream in("input.txt");
 
    if (in.is_open())
    {
        for (std::string str; std::getline(in, str);)
            vec.push_back(std::move(str));
 
        std::ofstream out("output.txt");
        if (vec.empty() == false)
            std::copy(vec.begin(), vec.end() - 1, std::ostream_iterator<std::string>(out, "\n"));
    }
 
    return 0;
}
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
26.02.2012, 05:53 #3
Без вектора ,без очереди и без контейнера .
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
/////////////////////////////////////////////////////
//   C  ++
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus"); 
    size_t fsize, i = 0;
    size_t count = 0, cut = 0; 
    char *buff;
    buff = new char[250]; 
 
    ifstream docfile("file.txt"); 
    if (!docfile) cout << "Файл не может быть открыт!\n"; 
    else{
   docfile.seekg (0, ios::end);// указатель в конец файла
   fsize = docfile.tellg();// узнать размер файла
   docfile.seekg (0, ios::beg);// указатель в начало файла
   docfile.read(buff, fsize);  //  запись в массив  
      
     for(int i = 0;i < fsize;i++){
          if( buff[i] == '\n'){ 
              cut = i;   //   до какого символа надо переписать
          count++;       //    считаем сколько  символов '\n' удалить
          }}
     fsize -= count;//      нужный размер исходного  файла
      cout.write (buff,fsize);  // исходный  файл - вывод на экран  
      docfile.close();}
 
     // запись уже без последней строки 
 
      ofstream docfile2("file2.txt");
      docfile2.write(buff, cut); 
      docfile2.close();
      delete[] buff;  
    system("pause");
 
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2012, 05:53
Привет! Вот еще темы с ответами:

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

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync - C++
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная &quot;защита от дурака&quot; на ввод. Не пойму предназначение cin.get() !=...

Отличие функции cin.get и cin.getline - C++
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем, что функция get считывает символ разрыва строк и оставляет...

Почему с помощью std::cin не получается считать с клавиатуры массив пользовательского типа? - C++
Доброго времени суток! Нашёл приме объвления класса комп. чисел и выполнения основных операций. Я пытал преобразовать коод таким образом,...


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

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

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