Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/26: Рейтинг темы: голосов - 26, средняя оценка - 4.96
0 / 0 / 1
Регистрация: 19.12.2013
Сообщений: 39
1

Ctrl+Z или Как закончить ввод с консоли?

26.09.2014, 08:57. Просмотров 4772. Ответов 5
Метки нет (Все метки)

Не получается найти ошибку

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
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
 
#define STACKSIZE  50
 
int  stackPTR = 0;
long int stack[STACKSIZE] = {0.0};
 
int string_equal(const char* first, const char *second)
{
    return (strcmp(first, second) == 0);
}
 
int pop(void)
{
    int returnNum;
    returnNum = stack[stackPTR];
     
    if (stackPTR > 0)
    {
        stackPTR--;
    }
     
    return returnNum;
}
 
int push(int num)
{
    int  i;
    stack[++stackPTR] = num;
     
    assert(stackPTR < (STACKSIZE + 1));
    if (stackPTR == STACKSIZE)
    {
        for (i = 0; i < STACKSIZE; i++)
            stack[i] = stack[i + 1];
        stackPTR = STACKSIZE - 2;
    }
     
    return num;
}
 
 
 
int main()
{
    char input[50];
    long int numIn;
    int sum, oP;
    
    while(scanf("%s", input) != EOF)
    {
            numIn = atoi(input);
            
            if(numIn == 0)
            {
                if(string_equal(input, "+"))
                {
                    sum = push(pop() + pop());
                } 
                else if (string_equal(input, "-")) 
                {
                    sum = push(pop() - pop());
                } 
                else if (string_equal(input, "*")) 
                {
                    sum = push(pop() * pop());
                } 
                else if (string_equal(input, "/")) 
                {
                    sum = push(pop() / pop());
                }               
            }
            else 
            {
                push(numIn);
            }
    }
    
    printf("%d\n", pop());
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2014, 08:57
Ответы с готовыми решениями:

Что работает быстрее, ввод с консоли или ввод с файла?
вводятся множество списков программа удаляет первое число списка и удаляет все числа в этом списке...

Защита консоли от закрытия с Ctrl-C и Ctrl-Pause
Всем привет! Мне нужно защитить консоль от закрытия с помощью Ctrl-C и Ctrl-Pause, вообщем чтобы...

Как закончить ввод пустой строкой?
Вводится несколько строк, в которых сначала записаны инициалы и фамилии работников фирмы.Ввод...

Как закончить ввод данных нажатием Enter
Я делаю лабу, отгадать случайных число, Но не могу понять как в Forme закончить ввод данных с...

5
17 / 17 / 8
Регистрация: 18.09.2012
Сообщений: 184
26.09.2014, 12:14 2
В какой строчке ошибка? Отладчиком пользовались?
1
315 / 177 / 73
Регистрация: 18.01.2014
Сообщений: 387
26.09.2014, 17:49 3
А в чем, собственно, ошибка заключается?
Программа работает на корректных выражениях:
Ctrl+Z или Как закончить ввод с консоли?
1
0 / 0 / 1
Регистрация: 19.12.2013
Сообщений: 39
26.09.2014, 18:34  [ТС] 4
я не знаю, но у меня не вычисляет!
0
Модератор
Эксперт С++
9498 / 8160 / 4986
Регистрация: 18.12.2011
Сообщений: 21,769
26.09.2014, 18:37 5
Лучший ответ Сообщение было отмечено Veronica_aa как решение

Решение

А Вы ctrl+Z нажимаете в конце ввода?
1
0 / 0 / 1
Регистрация: 19.12.2013
Сообщений: 39
26.09.2014, 20:50  [ТС] 6
О! Заработало! Спасибо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2014, 20:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как закончить ввод в итератор ввода для потока
По задумке в представленном ниже коде вводятся слова в консоль, потом как то ввод прекращается и...

Как настроить русский язык в консоли по Ctrl + Alt + Fn?
У меня такая вот ситуация в оконном терминале у меня русский язык нормально отображается, а вот в...

Undo/Redo или CTRL+Z – CTRL+Y »» не работает для личных макросов
Есть макросы по теме ··· заливка; цвет текста; вставить примечание. Для них не работает Undo/Redo...

Как отловить нажатие ctrl+v ctrl+c ctrl+x key_Press
Как правильно отловить нажатие ctrl+v ctrl+c ctrl+x в событии key_Press? я пробую так: private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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