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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.95
Dewi1
0 / 0 / 0
Регистрация: 25.02.2012
Сообщений: 4
26.02.2012, 01:02     С помощью cin.getline считать все строки файла в контейнер (вектор или очередь) #1
Можете пожалуйсто написать код, где можно с помощью cin.getline считать все строки файла в контейнер (вектор или очередь), потом из контейнера переписать все строки в другой файл, кроме последнего.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 01:02     С помощью cin.getline считать все строки файла в контейнер (вектор или очередь)
Посмотрите здесь:

C++ getline(cin,a);
считывание строки cin.getline() C++
C++ cin.getline
getline() (не получается считать информацию с файла) C++
Считать вектор из файла, записать вектор в файл C++
C++ Считать строку с пробелами с помощью Std::cin
Не работает cin.getline при считывании строки большей буфера C++
Тупит cin.getline или я туплю C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.02.2012, 03:08     С помощью cin.getline считать все строки файла в контейнер (вектор или очередь) #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;
}
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
26.02.2012, 05:53     С помощью cin.getline считать все строки файла в контейнер (вектор или очередь) #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;
}
Yandex
Объявления
26.02.2012, 05:53     С помощью cin.getline считать все строки файла в контейнер (вектор или очередь)
Ответ Создать тему
Опции темы

Текущее время: 03:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru