Code debug for calculator

I am trying to make a code that just is an math calculator in serial monitor here is answer in serial monitor

Sketch uses 6352 bytes (19%) of program storage space. Maximum is 32256 bytes.
Global variables use 552 bytes (26%) of dynamic memory, leaving 1496 bytes for local variables. Maximum is 2048 bytes.

Flashing with command:C:/Users/bhatt/.arduino-create/arduino/avrdude/6.3.0-arduino17/bin/avrdude.exe -CC:/Users/bhatt/.arduino-create/arduino/avrdude/6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:/Users/bhatt/AppData/Local/Temp/arduino-create-agent2180432931/new_sketch_1736560410438.hex:i
avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch
         System wide configuration file is "C:/Users/bhatt/.arduino-create/arduino/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         Using Port                    : COM3
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 3
         Firmware Version: 4.4
         Vtarget         : 0.3 V
         Varef           : 0.3 V
         Oscillator      : 28.800 kHz
         SCK period      : 3.3 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: reading input file "C:/Users/bhatt/AppData/Local/Temp/arduino-create-agent2180432931/new_sketch_1736560410438.hex"
avrdude: writing flash (6352 bytes):
Writing | ################################################## | 100% 0.97s
avrdude: 6352 bytes of flash written
avrdude: verifying flash memory against C:/Users/bhatt/AppData/Local/Temp/arduino-create-agent2180432931/new_sketch_1736560410438.hex:
avrdude: load data flash data from input file C:/Users/bhatt/AppData/Local/Temp/arduino-create-agent2180432931/new_sketch_1736560410438.hex:
avrdude: input file C:/Users/bhatt/AppData/Local/Temp/arduino-create-agent2180432931/new_sketch_1736560410438.hex contains 6352 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.75s
avrdude: verifying ...
avrdude: 6352 bytes of flash verified
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
avrdude done.  Thank you.
Ok
void setup() {
  Serial.begin(9600); // Start the Serial Monitor
  Serial.println("Simple Math Program");
  Serial.println("Follow the steps:");
  Serial.println("1. Enter the first number and press Enter.");
  Serial.println("2. Enter the second number and press Enter.");
  Serial.println("3. Enter an operator (+, -, *, /) and press Enter.");
}

float getNumber() {
  while (Serial.available() == 0) {
    // Wait for user input
  }
  String input = Serial.readStringUntil('\n');
  input.trim(); // Remove extra spaces
  return input.toFloat(); // Convert input to float
}

char getOperator() {
  while (Serial.available() == 0) {
    // Wait for user input
  }
  char op = Serial.read();
  while (Serial.available() > 0) Serial.read(); // Clear any extra input
  return op;
}

void loop() {
  Serial.println("Enter the first number:");
  float num1 = getNumber();

  Serial.println("Enter the second number:");
  float num2 = getNumber();

  Serial.println("Enter an operator (+, -, *, /):");
  char operation = getOperator();

  float result;
  bool valid = true;

  switch (operation) {
    case '+':
      result = num1 + num2;
      break;
    case '-':
      result = num1 - num2;
      break;
    case '*':
      result = num1 * num2;
      break;
    case '/':
      if (num2 != 0) {
        result = num1 / num2;
      } else {
        Serial.println("Error: Division by zero.");
        valid = false;
      }
      break;
    default:
      Serial.println("Error: Invalid operator. Use +, -, *, or /.");
      valid = false;
      break;
  }

  if (valid) {
    Serial.print("Result: ");
    Serial.println(result);
  }

  Serial.println("-----");
}

can it work as a calculator not just text

I am using uno with port com3

Please read the pinned post re 'How to make the best use of this forum'

What board is that, I have never seen that output.

a uno board

6 posts were split to a new topic: My output has less stats when uploading to UNO

it should have an output with buttons for the operations and it should have 2 numbers to add

where is the forum post?

As is it is a traditional reverse polish notation calculator. Of course there is a ton or error checking missing, but a good enough learning tool.
If you want to extend the learning, make it take an unknown number of operands. HINT this is the classic 'stack' solution.

Which one

'How to make the best use of this forum'
one post


There is one in every Category in one of the sub-categories

thank you

I can't find it there are so many topics in the one I found

Hi @aaron7812.

The text you shared there is not from Serial Monitor. That is the output that is printed to the console panel at the bottom of the Arduino Cloud Editor page.

Serial Monitor is something completely different. You can open it by clicking the button at the top right corner of the Cloud Editor page:

You can learn how to use the Arduino Cloud Serial Monitor by reading this tutorial:

https://docs.arduino.cc/arduino-cloud/guides/editor/#serial-monitor

I am using chrome editor

@aaron7812 There is no such thing as "Chrome Editor". The name of the product is "Arduino Cloud Editor". Please be careful to use the correct name to avoid confusion.

I'm also not sure what the purpose of your comment was. Did you follow the instructions I provided in post #15? If you did follow them, then is your question now resolved? If you didn't follow them, then please do so.

Maybe you were confused by my mention of "Arduino IDE" in post #16 (since split to
a separate topic)? That post was directed at @sonofcy, not at you. Please ignore post #16 and focus your attention on post #15 instead.

Yes. Enter two numbers, then the operation, and it gives you the result.

However; you need to capture (and discard) the final CRLF after the operation symbol.