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

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

Войти
Регистрация
Восстановить пароль
 
eXPonent
 Аватар для eXPonent
43 / 43 / 2
Регистрация: 21.05.2012
Сообщений: 727
26.04.2014, 11:05     С ++ разделяющий пробел и новая строка #1
С ++ разделяющий пробел и новая строка
Как отличить при считывании из файла чисел

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

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

C++ Пробел
Вставить пробел C++
Новая строка C++
C++ Дана строка: Ваши фамилия, имя и отчество записаны через один пробел. Записать одну фамилию в виде И...в.
В целочисленном массиве имеется единственный нулевой элемент, разделяющий его на две части. В частном случае любой из подмассивов может быть пустым C++
C++ Строка вводится с клавиатуры. В данной строке вставить пробел после каждого символа
Строка: вставить пробел перед каждой заглавной буквой C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2438 / 1610 / 235
Регистрация: 24.11.2012
Сообщений: 3,949
26.04.2014, 11:09     С ++ разделяющий пробел и новая строка #2
Считать всю строку с std::getline, потом из нее вытаскивать числа.
eXPonent
 Аватар для eXPonent
43 / 43 / 2
Регистрация: 21.05.2012
Сообщений: 727
26.04.2014, 11:12  [ТС]     С ++ разделяющий пробел и новая строка #3
А в какой поток записывать числа?
0x10
2438 / 1610 / 235
Регистрация: 24.11.2012
Сообщений: 3,949
26.04.2014, 11:13     С ++ разделяющий пробел и новая строка #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://en.cppreference.com/w/cpp/io/.../operator_gtgt

Добавлено через 27 секунд
До кучи: http://en.cppreference.com/w/cpp/str...string/getline
nmcf
4441 / 3779 / 1278
Регистрация: 14.04.2014
Сообщений: 14,872
26.04.2014, 11:16     С ++ разделяющий пробел и новая строка #5
У getline есть третий параметр - разделитель, можно указать, что разделитель "пробел" и читать числа сразу.
eXPonent
 Аватар для eXPonent
43 / 43 / 2
Регистрация: 21.05.2012
Сообщений: 727
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;
        };
0x10
2438 / 1610 / 235
Регистрация: 24.11.2012
Сообщений: 3,949
26.04.2014, 11:52     С ++ разделяющий пробел и новая строка #7
eXPonent, у getline второй параметр - строка, читайте доки внимательнее. По последней ссылке есть пример, к которому нужно добавить только чтение из файла.
eXPonent
 Аватар для eXPonent
43 / 43 / 2
Регистрация: 21.05.2012
Сообщений: 727
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;
        };
// НО при первом проходе считывает пустую строку
0x10
2438 / 1610 / 235
Регистрация: 24.11.2012
Сообщений: 3,949
26.04.2014, 12:05     С ++ разделяющий пробел и новая строка #9
Цитата Сообщение от eXPonent Посмотреть сообщение
НО при первом проходе считывает пустую строку
Как бы чуть выше уже что-то считывается, и где позиция в файле после этого?
eXPonent
 Аватар для eXPonent
43 / 43 / 2
Регистрация: 21.05.2012
Сообщений: 727
26.04.2014, 12:13  [ТС]     С ++ разделяющий пробел и новая строка #10
А разве она не на следующей строке?
Тогда как её переместить?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2014, 12:14     С ++ разделяющий пробел и новая строка
Еще ссылки по теме:

Пробел в System C++
C++ Найти разделяющий индекс
C++ Строка: После каждого символа А вставить пробел, и подсчитать количество символов B, стоящих между + и -
C++ Написать парсер, разделяющий строки на подстроки (файловый ввод/вывод)
Каждую группу из n последовательно стоящих символов ‘’ (пробел) и '\t' (табуляция) заменить на один пробел C++

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

Или воспользуйтесь поиском по форуму:
0x10
2438 / 1610 / 235
Регистрация: 24.11.2012
Сообщений: 3,949
26.04.2014, 12:14     С ++ разделяющий пробел и новая строка #11
Я бы единообразно все считывал. Т.е. в первом случае тоже getline, но вне цикла.
Yandex
Объявления
26.04.2014, 12:14     С ++ разделяющий пробел и новая строка
Ответ Создать тему
Опции темы

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