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

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

Войти
Регистрация
Восстановить пароль
 
eXPonent
99 / 52 / 2
Регистрация: 21.05.2012
Сообщений: 1,170
#1

С ++ разделяющий пробел и новая строка - C++

26.04.2014, 11:05. Просмотров 368. Ответов 10
Метки нет (Все метки)

С ++ разделяющий пробел и новая строка
Как отличить при считывании из файла чисел

Допустим
3 -5 6 8
2 0 8 -1
10 3 11 5

Нужно считать в vector< vector<int> >
Изначально не зная размера!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2014, 11:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С ++ разделяющий пробел и новая строка (C++):

Новая строка - C++
Очень глупый вопрос) Куда влепить &quot;\n&quot;, чтобы всегда вводить новые символы с новой строки? И чтобы результат был в виде одной строки, а не...

Строка: вставить пробел перед каждой заглавной буквой - C++
Вводится строчка, например, HaveaNiceDay. Нужно чтобы выводилось Havea Nice Day, то есть перед заглавной буквой ставится пробел. Как...

Строка вводится с клавиатуры. В данной строке вставить пробел после каждого символа - C++
Строка вводится с клавиатуры. В данной строке вставить пробел после каждого символа

Строка: После каждого символа А вставить пробел, и подсчитать количество символов B, стоящих между + и - - C++
Помогите пожалуйста решить задачу. После каждого символа А вставить пробел, и подсчитать количество символов B, стоящих между + и - ...

Найти разделяющий индекс - C++
4. int partition(int first, int last, string appNames, float appPrices); Splits string array appNames and appPrices around a pivot index...

Дана строка: Ваши фамилия, имя и отчество записаны через один пробел. Записать одну фамилию в виде И...в. - C++
Помогите пожалуйста. Дана строка: Ваши фамилия, имя и отчество записаны через один пробел. Записать одну фамилию в виде И...в. ...

10
0x10
2479 / 1652 / 248
Регистрация: 24.11.2012
Сообщений: 4,095
26.04.2014, 11:09 #2
Считать всю строку с std::getline, потом из нее вытаскивать числа.
1
eXPonent
99 / 52 / 2
Регистрация: 21.05.2012
Сообщений: 1,170
26.04.2014, 11:12  [ТС] #3
А в какой поток записывать числа?
0
0x10
2479 / 1652 / 248
Регистрация: 24.11.2012
Сообщений: 4,095
26.04.2014, 11:13 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt

Добавлено через 27 секунд
До кучи: http://en.cppreference.com/w/cpp/string/basic_string/getline
1
nmcf
5538 / 4848 / 1644
Регистрация: 14.04.2014
Сообщений: 19,670
26.04.2014, 11:16 #5
У getline есть третий параметр - разделитель, можно указать, что разделитель "пробел" и читать числа сразу.
1
eXPonent
99 / 52 / 2
Регистрация: 21.05.2012
Сообщений: 1,170
26.04.2014, 11:47  [ТС] #6
Код
C++
1
2
3
ifstream F("student1.txt", ios::in);
stringstream S;
getline(F, S);
вылез с ошибками

Более подробный
C++
1
2
3
4
5
6
7
8
9
10
11
12
int m;
        stringstream S;
        while(getline(F, S))
        {
            int columns(0);
            while(getline(S, m, ' '))
            {
                ++columns;
            };
            cout << columns << endl;
//          ++lines;
        };
0
0x10
2479 / 1652 / 248
Регистрация: 24.11.2012
Сообщений: 4,095
26.04.2014, 11:52 #7
eXPonent, у getline второй параметр - строка, читайте доки внимательнее. По последней ссылке есть пример, к которому нужно добавить только чтение из файла.
1
eXPonent
99 / 52 / 2
Регистрация: 21.05.2012
Сообщений: 1,170
26.04.2014, 12:00  [ТС] #8
Спасибо, код переделал,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
F >> stud.size.first;
        F >> stud.size.second;
        int m;
        string S;
        while(getline(F, S)) // НО при первом проходе считывает пустую строку
        {
            stringstream stream(S);
            int columns(0);
            while(stream >> m)
            {
                ++columns;
            };
            cout << columns << endl;
//          ++lines;
        };
// НО при первом проходе считывает пустую строку
0
0x10
2479 / 1652 / 248
Регистрация: 24.11.2012
Сообщений: 4,095
26.04.2014, 12:05 #9
Цитата Сообщение от eXPonent Посмотреть сообщение
НО при первом проходе считывает пустую строку
Как бы чуть выше уже что-то считывается, и где позиция в файле после этого?
0
eXPonent
99 / 52 / 2
Регистрация: 21.05.2012
Сообщений: 1,170
26.04.2014, 12:13  [ТС] #10
А разве она не на следующей строке?
Тогда как её переместить?
0
0x10
2479 / 1652 / 248
Регистрация: 24.11.2012
Сообщений: 4,095
26.04.2014, 12:14 #11
Я бы единообразно все считывал. Т.е. в первом случае тоже getline, но вне цикла.
1
26.04.2014, 12:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2014, 12:14
Привет! Вот еще темы с ответами:

Написать парсер, разделяющий строки на подстроки (файловый ввод/вывод) - C++
Подкиньте пожалуйста идей для решения задачи

Каждую группу из n последовательно стоящих символов ‘’ (пробел) и '\t' (табуляция) заменить на один пробел - C++
Каждую группу из n последовательно стоящих символов ‘’ (пробел) и '\t' (табуляция) заменить на один пробел

В строке заменить пробел между слов на запятую и пробел - C++
В строке заменить пробел между слов на запятую и пробел

В целочисленном массиве имеется единственный нулевой элемент, разделяющий его на две части. В частном случае любой из подмассивов может быть пустым - C++
В целочисленном массиве имеется единственный нулевой элемент, разделяющий его на две части. В частном случае любой из подмассивов может...


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

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

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