Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчитать сумму четных элементов и произведение нечетных элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread2189844.html
Помогите пожалуйста исправить ошибку, в выделенном месте пишет if (a % 2 == 0) "выражение должно относиться к целочисленному типу или типу перечисления без области видимости" // #include...
C++ система ОДУ
подскажите как сделать программу, очень нужно
C++ Причина неудобной реализации функций
Почему к примеру нельзя писать так char* cd=GetCurrentDirectory(); А надо обязательно так char cd ; GetCurrentDirectory(sizeof(cd),cd);
C++ Упорядочить элементы первой строки матрицы по возрастанию дробной части методом вставки 2. Дана вещественная квадратная матрица. Определить: • упорядочить элементы первой строки по возрастанию дробной части методом вставки http://www.cyberforum.ru/cpp-beginners/thread2189816.html
C++ Определить сумму элементов, расположенных ниже побочной диагонали матрицы http://www.cyberforum.ru/cpp-beginners/thread2189815.html
2. Дана вещественная квадратная матрица. Определить: • сумму элементов, расположенных ниже побочной диагонали
C++ Найти элемент массива, имеющий максимальную цифру в младшей значащей позиции
В одномерном массиве, состоящем из n целочисленных элементов, вычислить: • Найти элемент массива, имеющий максимальную цифру в младшей значащей позиции
Вычислить произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами C++
В одномерном массиве, состоящем из n целочисленных элементов, вычислить: • произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами;
C++ Перегрузка функций для реализации алгоритмов сортировки Помогите пожалуйста с заданием. Массив данных заполнять случайным образом. рассмотреть массивы данных из элементов типа char и double. использовать перегрузки функций для реализации алгоритмов... http://www.cyberforum.ru/cpp-beginners/thread2189801.html
C++ Сформировать новый массив путем перевода элементов начального массива в десятичную систему http://www.cyberforum.ru/cpp-beginners/thread2189781.html
Здравствуйте, у меня есть такое задание: Дан массив что складывается из чисел двоичной системы счисления . Сформировать новый массив путем перевода елементов начального массива в десятичную систему....
C++ Почему в данном случае срабатывает неявный конструктор Почему в данном случае срабатывает неявный конструктор, хотя он и помечен explicit? Main.cpp: #include "Hugo.h" Hugo f(); Hugo f() { Hugo h; http://www.cyberforum.ru/cpp-beginners/thread2189696.html
Michail97
93 / 40 / 23
Регистрация: 18.09.2016
Сообщений: 372
0

Cin перестал читать из потока ввода

15.02.2018, 13:40. Просмотров 877. Ответов 4
Метки (Все метки)

Возникла проблема при чтении из потока.
Может кто знает, как решить эту проблему с cin?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <Windows.h>
#include <iomanip>
#include <vector>
#include <algorithm>
 
#define SIZE 20
using namespace std;
 
 
struct ORDER {
 
    char lpszNumber_1[ SIZE + 1];
    char lpszNumber_2[SIZE + 1];
    float fSum;
 
};
 
bool comp(ORDER arg_1,   ORDER arg_2)
{
 
    return  ( strcmp( arg_2.lpszNumber_1, 
            
        arg_1.lpszNumber_1) > 0 ) ;
}
 
 
 
vector<ORDER> Input( void  ) 
{
 
    vector<ORDER>mass;
    while (1)
    {
 
        char buff[50];
        cin.get(buff, sizeof(buff) - 1);
        cin.get();
        if (strcmp(buff, "") == 0)
        {
            break;
        }
        
        ORDER temp;
        if (3 != sscanf(buff, "%s %s %f", temp.lpszNumber_1, temp.lpszNumber_2, &temp.fSum))
        {
            cout << "Неверный ввод!\n";
            continue;
        }
        
        mass.push_back(temp);
        
        //qsort( &mass[0], mass.size(), sizeof(ORDER), comp);
        sort( mass.begin(), mass.end(), comp);
 
    }
    return mass;
}
 
void GetInfo( vector<ORDER>mass, char string[] )
{
    bool flag = false;
    while (mass.size() > 0)
    {
        ORDER temp = mass[  mass.size() - 1];
        if (strcmp(temp.lpszNumber_1, string) == 0)
        {
            cout << "Сумма, снятая этим плательщиком: " << temp.fSum<<endl;
        }
        mass.pop_back();
 
    }
    if (!flag)
    {
        cout << "Таких расчётных счетов нет!\n";
    }
}
 
 
int main( void )
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
 
    int count;
    cout << "Вводите даееые.\n«Номер плательщика Номер получателя Сумма»\nВвод пустой строки - конец ввода.\n";
 
    vector<ORDER>mass(Input());
 
    for (int i = 0; i < mass.size() ; i++)
    {
        cout <<left<< setw( 20 )<<mass[i].lpszNumber_1 << " " << setw(20)<<mass[i].lpszNumber_2 <<" "<<right<< mass[i].fSum <<" рублей"<< endl;
    }
    cout << "Введите расчётный счёт плательщика: ";
 
 /*--------- здесь уже не читает-------------*/
    
    char buff[21];
 
    cin.get(buff, sizeof(buff) - 1, '\n');
 
    GetInfo(mass, buff);
    
    system("pause");
    return 0;
}
Добавлено через 31 минуту
Вообще непонятно.
C++
1
2
3
4
5
6
7
 char buff[50];
        cin.get(buff, sizeof(buff) - 1);
        cin.get();
        if (strcmp(buff, "") == 0)
        {
            break;
        }
Здесь я считыва символы в массив( при этом в потоке остаётся символ перевода строки )
Его я извлекаю. Дальше в цикле всё нормально выполняется и записывается, а вот после ввода пустой строки и выхода из цикла уже cin никак не хочет читать ничего. Даже интересно что в потоке сидит.
Ну не eof точно

Добавлено через 1 час 19 минут
Короче, да EOF. При этом при вводе пустой строки

Вернуться к обсуждению:
Cin перестал читать из потока ввода
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2018, 13:40
Готовые ответы и решения:

Обработка ошибок ввода из потока cin
Доброго времени суток всем! Помогите пожалуйста разобраться. После ввода буквы например, то есть...

Работа с cin при считывании с потока ввода
есть кусочек кода while (1) { string buf = name; cout &lt;&lt; &quot;Message : &quot;; string...

Использование потока cin для ввода символов
Вот первая функция, cin.get(ch) которую я не понимаю int main() { char ch; cin.get(ch);...

читать пробел cin ом
Возможно, глупый вопрос, но как считать cinом строчку с пробелом? Желательно в массив char

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые...

4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.