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

Текстовый файл, в котором значения разделены точкой с запятой. Нужен ли regex? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проясните код. Побитовое увелечение/уменьшение на 1 http://www.cyberforum.ru/cpp-beginners/thread775382.html
Вот пример кода. Вы можете объяснить мне как он работает. Я понимаю, что 16 это 10000 в двоичной системе. Код легкий, но я не могу понять как происходит увеличение/уменьшение. // lab...
C++ printf или boost::format сделать из одной цифры две как принудительно выводить в строку 2 цифры? например вместо 2 — 20, а если 2 цифры то ничего не добавлять? пытался перевести в float, но не знаю как удалить "0." в printf , \b - удаляет... http://www.cyberforum.ru/cpp-beginners/thread775380.html
C++ Написать программу, которая считывает текст из файла
Сост. блок схему,если не трудно сделайте скрин схемы)))))заранее огромное спасибо))))!!! Написать программу, которая считывает текст из файла и выводит на экран только строки,содержащие двузначные...
C++ Знак ^ c++
Для начала знать бы как он называется, потому что гугл в ответ выдает ересь, ну а в идеале где используется, что делает....
C++ Функции (даны две матрицы. Переставить в них четные и нечетные столбцы) http://www.cyberforum.ru/cpp-beginners/thread775320.html
Помогите пжлста с помощью функции (желательно с пояснениями). Даны две матрицы размерности 7x7 вещественных случайных чисел, принадлежащих диапазону . Переставить в них четные и нечетные столбцы....
C++ error LNK2001 и указатели на члены класса Изучал идею с таблицей функций, вылезает ошибка 2001. Визуалка 11.0.5. Заранее благодарен. (http://www.tebyan.net/newindex.aspx?pid=31159&BookID=22056&PageIndex=187&Language=3 хотя всё как в книге... подробнее

Показать сообщение отдельно
Excogit8er
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 66
30.01.2013, 18:20  [ТС]
Цитата Сообщение от Vourhey Посмотреть сообщение
C++
1
while(std::getline(in, token, ';')) tokens.push_back(token);
потом к любому элементу через tokens[индекс] где tokens - вектор, in - ifstream, token - стринг
А при таком подходе строки не перепутаются? )
Так-то все ясно: while(std::getline(filename, str, '\n'))
И каждая строка потом парсится.
А так...

Добавлено через 2 минуты
Цитата Сообщение от gray_fox Посмотреть сообщение
Excogit8er, может как-нибудь так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
#include <boost/regex.hpp>
 
 
int main() {
   std::string line;
   std::getline(std::cin, line);
   boost::regex regex("^(((.*?);)){2}(.*?);((.*?);){16}(.*?);");
   boost::smatch match;
   if (boost::regex_match(line, match, regex)) {
      std::cout << match[4] << std::endl;
      std::cout << match[6] << std::endl;
   }
}
http://liveworkspace.org/code/3B2Vcq

Добавлено через 1 минуту
Так то со split попроще будет, пожалуй)
Ну, кстати, вариант. Со сплит я уже посмотрел примеры:

C++
1
2
3
4
5
6
7
8
9
   std::string s = "value1;value2;value number fucking 3;value4";
   s.erase(s.size() - 1);
   std::vector<std::string> v;
   boost::split(v, s, [](const char c) { return c == ';'; }, boost::token_compress_on);
   boost::copy(v | boost::adaptors::filtered([](const std::string& s)
   {
      return *s.begin() == *s.rbegin();
   }), std::ostream_iterator<std::string>(std::cout, "\n"));  
}
Жесть как она есть ) При этом пока не понял, как, скажем, вывести в консоль только (скажем) 3е и 19е subexpressions.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru