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

Парсинг значений из командной строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Структура данных http://www.cyberforum.ru/cpp-beginners/thread382388.html
Я сейчас изучаю Си. (по книжкам(Керниган,Ритчи ) и видеокурс от "Специалист"). У меня такой вопрос стоит ли параллельна учить Структуры данных ? Или после изучение синтаксиса языка учить?
C++ Massiv #include <iostream.h> #include <math.h> void main () { int i, n, k=0;int a; cin>>n; for (i=0;i<n;i++) http://www.cyberforum.ru/cpp-beginners/thread382386.html
Дано целое число K и набор ненулевых целых чисел C++
Дано целое число K и набор ненулевых целых чисел; признак его за-вершения — число 0. Вывести номер последнего числа в наборе, больше-го K. Если таких чисел нет, то вывести 0.
Массивы С++ C++
В массивах a и b хранятся коэффициенты двух многочленов . Поместить в массив c коэффициенты их произведения. (Числа k, l, m - натуральные, m = k + l; элемент массива с индексом i содержит коэффициент при x в степени i.) Пожалуйста помогите решить!!
C++ Ошибка в case http://www.cyberforum.ru/cpp-beginners/thread382365.html
#include <iostream.h> #include <conio.h> #include <iomanip.h> #include <system.hpp> int vvod(); int vivod(int n1, int s1); int obrab(int n1); int *p; int i; int main()
C++ Вычислить произведение первых n сомножителей на C++ Дано натуральное число n. Вычислить произведение первых n сомножителей: (1/1)*(3/2)*(5/3)*..... Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на Ваш вопрос ответят. подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
12.11.2011, 18:16     Парсинг значений из командной строки
MishQa, объекты istream в C++ имеют оператор void*, который используется для приведения к типу void*, где нулевой указатель сигнализирует об ошибке чтения/преобразования (на основе неявно установленных флагов), а ненулевой - об успешности операции. Перегруженный оператор >> возвращает объект istream. Что мы видем здесь?

C++
1
2
if( !(is >> temp.a) || is.get() != '/' || !(is >> temp.b) )
 throw std::runtime_error( "bat ratio format" );
сначала идет чтение числителя дроби, после чего возвращаемый объект потока неявно приводится к типу void* для того, чтобы проверить успешность чтения. После чего из входного потока читается единичный символ (и проверяется, что он равен '/'), затем по аналогии с числителем читается знаменатель. Следовательно, условие имеет вид (на псевдокоде):
Код
Если(не(успешно чтение числителя) или (прочитанный символ не равен '/') или не(успешно чтение знаменателя))
   то выбрасываем исключение
т.е. если хоть один элемент считан неправильно, то получаем ошибку

Цитата Сообщение от MishQa Посмотреть сообщение
И далее идем от начала до конца вектора и печатаем
C++
1
std::cout << it->a << '/' << it->b << "; ";
it->a что это такое? итератор IT нас как бы идет по объектам засунутым в вектор? а '->' извлекает из структуры/класса , на котором установлен итератор данные? ***
да

Не по теме:

Цитата Сообщение от talis Посмотреть сообщение
Nameless One, кстати, getopt поддерживается MinGW.
неудивительно, т.к. MinGW - это порт GCC (а GCC, насколько я знаю, полностью POSIX-совместим)

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