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

Не могу правильно считать данные из потока - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ библиотеки алгоритмов http://www.cyberforum.ru/cpp-beginners/thread638469.html
Где можно найти библиотеки 3j-, 6j- и 9j-символов?
C++ Синтаксис Кусок кода на C++. Помогите разобраться что означает в данном случае последовательность символов "|=" ? UDF_RC CForm1Class::CForm1( OBJ_PTR *obj, CYCLE cycle ) { INT Error = (INT)NX_OK; NX_DOMAIN Domain; NX_ARRAY Array; switch( cycle ) http://www.cyberforum.ru/cpp-beginners/thread638461.html
C++ посимвольное считывание
У меня есть переменная типа string которая равна "000000000000". Мне нужно программно превратить ее вот в такую: 000-000-000-000. Я хочу считать 3 символа и поставить тире и тд.
Сортировка по возрастанию простым выбором C++
Не могу найти ошибку в коде. Выдает вот такую ошибку "Необработанное исключение в "0x002315c0" в "ЛВП.exe": 0xC00000FD: Stack overflow." #include "stdafx.h" #include <iostream> #include <conio.h> #include <math.h> using namespace std;
C++ Необработанное исключение http://www.cyberforum.ru/cpp-beginners/thread638418.html
Всем привет! Совсем недавно начал писать на C++. Делаю курсовую работу. Программа моделирует процесс и полученные значения записывает в txt. Проблема в том что во время отладки постоянно вылетает ошибка: First-chance exception at 0x00ce919b in TunnelingOpticalImpulse(2012-08-15).exe: 0xC0000005: Access violation reading location 0x0087e000. Unhandled exception at 0x00ce919b in...
 

Показать сообщение отдельно
Roukff
1 / 1 / 0
Регистрация: 05.06.2011
Сообщений: 35

Не могу правильно считать данные из потока - C++

16.08.2012, 13:46. Просмотров 721. Ответов 3
Метки (Все метки)

Привет всем. У меня есть такая задача. На вход поступает дробь вида
1 1/4 (например). Эта дробь может быть представлена как только целой частью (1), так только дробной частью (1/4) так и полностью. И возникает проблема считывания.
Пробовал так:
C++
1
scanf("%lld %lld/%lld", one, two, three);
Но тут проблема в том, что приходится вводить все 3 числа. ну либо 2, но это неправильно.
Сейчас сделано так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//считываем первое число
scanf("%lld%c",&_fract.intPart, &_razdel);
    //считываем разделитель после первой цифры: если нажат Enter, то число без дробной части, 
    //если слеш, то только дробная часть, если пробел то и целая и дробная части присутствуют
    if (_razdel == '\n')
    {
        _fract.numerator = 0;
        _fract.denomerator = 1;
    }
    else if (_razdel == ' ')
    {
        //Считываем дробную часть
        scanf("%lld/%lld%*c", &_fract.numerator, &_fract.denomerator);
    }
    else if (_razdel == '/')
    {
        //Считываем знаменатель
        scanf("%lld%*c", &_fract.denomerator);
        _fract.numerator = _fract.intPart;
        _fract.intPart = 0;
    }
    //Сбрасываем входной поток
    fflush(stdin);
Но здесь тоже проблема: этот код проходит автоматизированную проверку и ей надо, чтоб это число было введено в одну строку и скорее всего с этим-то проблема и есть. Помогите правильно считать данные!! Если предлагаете в строку считать, то помогите эту строку грамотно разобрать! =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru