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

автомат для проверки ввода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ про std http://www.cyberforum.ru/cpp-beginners/thread827948.html
Доброго времени суток. Написал достаточно большую программу и тут понадобилось удалить файл.... прочитал в инете про функцию int remove. В начале проги написано using namespace std; Когда стал компилить вылезла ошибка error C2883: remove: объявление функции вступает в конфликт с "remove", присутствующем в "using"-объявлении Вобщем вопрос: можно как нибудь удалить файл и чтобы это не...
C++ с++ dos box,64 разрядная платформа - Выполнить скалярное произведение двух векторов Выполнить скалярное произведение двух векторов. Обеспечить проверку на равенство длин векторов http://www.cyberforum.ru/cpp-beginners/thread827940.html
C++ Конструктор копирования в Visual Studio 2012
По идее это должен выполнять конструктор копирования. В мэине String rgb = s1; работает, а String rgb = String (s1); уже нет. хэдэр #ifndef STRING1_H_ #define STRING1_H_ #include <iostream> class String { private: char * str; int len;
C++ с++ dos box,64 разрядная платформа - Выполнить поиск максимального и минимального элементов массива
Выполнить поиск максимального и минимального элементов массива, подсчитать количество положительных, отрицательных и нулевых элементов массива
C++ с++ dos box,64 разрядная платформа - Вычислить максимальный показатель степени числа http://www.cyberforum.ru/cpp-beginners/thread827935.html
Задано число. Вычислить максимальный показатель, с которым степень этого числа по длине не превысит слова.
C++ с++ dos box,64 разрядная платформа - Вычислите n-й член F(n) последовательности Фибоначчи Вычислите n-й член F(n) последовательности Фибоначчи. В этой последовательности первые два члена равны 1, а каждый последующий равен сумме двух предыдущих подробнее

Показать сообщение отдельно
awpe
2 / 2 / 0
Регистрация: 23.11.2011
Сообщений: 87
04.04.2013, 15:32     автомат для проверки ввода
Доброго времени суток,

Нужно проверять ввод на ошибки, читаю матрицу. Пример ввода:
/*{
{1.0,2.0,3.0},
{4.0,5.0,6.0}
}*/

это содержится в переменной типа std::istream is;

начал решать с помощью if else и while, получается какая то большая структура из условий, я сам начинаю путаться, знакомый посоветовал использовать конечный автомат, до этого не был знаком с такой теорией, почитал, выглядит здорово. Но самому написать не выходит, застрял на бумаге...

Тип чисел double, точность произвольная, т.е. нужно по хорошему читать так is>>double d; посимвольно сложно будет

Проблема в том, что между смысловыми знаками в потоке могут случайным образом быть расставлены любые "пробельные" символы (табуляции, пробелы, новые строки). Мне нужно их игнорировать, одна из проблем - новая строка, с одной стороны там должна начаться новая строка матрицы, но ведь это может быть и просто символ если скобка строки еще не закрылась... И последняя строка после закрывающей скобки не имеет запятой, выходит нужно после каждой закрывающей скобки ждать либо запятую либо закрывающую скобку - еще одно условие с циклом у меня...

Буду благодарен, если кто-нибудь набросает на словах, как должен выглядеть такой автомат, или ссылку даст...

Добавлено через 16 минут
И из библиотек только iostream, sstream, iomanip, ничего другого нельзя использовать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru