У меня проблема с вводом для калькулятора с надписью с пометкой в C. . Мой учитель попросил меня использовать scanf («% s», токен), чтобы получить вход. Чтобы остановить чтение токенов, я проверяю, является ли значение, возвращаемое scanf, EOF. Он работает, если я использую перенаправление ввода при тестировании, но если я напишу выражение на CMD Windows, я попаду в бесконечный цикл. Как я могу остановить scanf, когда я просто нажимаю клавишу ввода без ввода строки? Вот код:Чтение выражений для калькулятора с надписью с фиксированным числом с помощью scanf
#include <stdio.h>
#include <ctype.h>
#include "stack.h"
int main(){
int a,b,t,stop;
char token[10],c;
do{
stop = scanf("%s",token);
if (stop == EOF){
break;
}
if (isdigit(token[0])){
t = atoi(token);
push(t);
}else{
a = top();
pop();
b = top();
pop();
c = token[0];
switch(c){
case '+': t = a + b;
break;
case '-': t = a - b;
break;
case '*': t = a * b;
break;
case '/': t = a/b;
break;
}
push(t);
}
} while(1);
printf("Result: %d\n",top());
}
Проблема заключается в, если блок после остановки переменной inizialisation, я думаю. Извините за мой английский, я итальянский студент, я старался быть настолько аккуратным, насколько смогу.
'Ctrl + z' введите для' EOF' – BLUEPIXY
@BLUEPIXY или 'Ctrl + d' –
@iharob его системы' Окна cmd' (его запись) – BLUEPIXY