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

Не игнорировать пробелы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
20.04.2013, 18:40     Не игнорировать пробелы #1
Суть вопроса в следующем. Хочу при помощи следующего кода записать содержимое текстового файла в массив. Можно и не в массив, в любой контейнер, но операция copy по какой то причине воспринимает только массив. При всем этом я не хочу чтобы игнорировались пробелы. Как добиться этого результата?
C++
1
2
3
4
5
6
7
8
9
10
ifstream file("song.dat");
ifstream_iterator<char> isiter(file);
ifstream_iterator<char> end_of_stream;
char array[10000];
string s1;
vector<char> v1;
 
//copy(isiter, end_of_stream,v1); - не работает =-/
//copy(isiter, end_of_stream,s1); - даже если указать тип string не работает
//copy(isiter,end_of_stream,array); - работает, но игнорирует все пробелы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
20.04.2013, 18:48     Не игнорировать пробелы #2
Если вручную вводить, то можно использовать это:
C++
1
cin.get();
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
20.04.2013, 19:04     Не игнорировать пробелы #3
fuzzytoozy, вам нужно построчно или сразу весь текст запихнуть?

Добавлено через 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 <iostream>
#include <string>
#include <fstream>
#include <iterator>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "");
 
    ifstream file("song.dat");
 
    if ( file ) {
    istreambuf_iterator<char> it(file);
//istream_iterator не учитывает символы переноса строки
    istreambuf_iterator<char> eos;
    string str(it, eos);
    cout << str;
    }
 
    return 0;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11828 / 6807 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
20.04.2013, 19:30     Не игнорировать пробелы #4
Как вариант:
C++
1
2
3
4
5
    std::fstream file("input.txt",std::ios::in | std::ios::binary);
    file.seekg(0,std::ios::end);
    std::vector<char> vec(file.tellp());
    file.seekg(0,std::ios::beg);
    file.read(&vec[0],vec.size());
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
20.04.2013, 20:12  [ТС]     Не игнорировать пробелы #5
все работает как нужно, символ переноса строки тоже учитывается! Всем спасибки = )
Yandex
Объявления
20.04.2013, 20:12     Не игнорировать пробелы
Ответ Создать тему
Опции темы

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