Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/23: Рейтинг темы: голосов - 23, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 25.02.2012
Сообщений: 4
1

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

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

Можете пожалуйсто написать код, где можно с помощью cin.getline считать все строки файла в контейнер (вектор или очередь), потом из контейнера переписать все строки в другой файл, кроме последнего.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2012, 01:02
Ответы с готовыми решениями:

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

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

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

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

2
Каратель
Эксперт С++
6601 / 4020 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
26.02.2012, 03:08 2
Лучший ответ Сообщение было отмечено Dewi1 как решение

Решение

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
870 / 768 / 173
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2012, 05:53

Не могу понять почему не могу считать символьный ряд через cin.getline
Не могу понять почему не могу считать символьный ряд через cin.getline.Помогите позязя. #define ...

Не работает cin.getline при считывании строки большей буфера
Доброго всем времени суток!:) Проблема состоит в том, что если ввести 4 и более символов...

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

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


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

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

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