UART Write Overloading

#include <iostream>
#include <string>
#include <cstdint>
#include <cstddef>

using namespace std;

  void write(uint8_t val){
    cout<<static_cast<unsigned int>(val);
  }
  void write(string val){
    std::cout<<val;
  }
  void write(uint8_t *p,int num){
    for(int i=0;i<num;i++){
        cout<<static_cast<unsigned int>(p[i]);
        cout<<" ";
    }
  }

int main() {
    int mode;
    cin >> mode;

    if (mode == 1) {
        unsigned int byteValue;
        cin >> byteValue;
        write(static_cast<uint8_t>(byteValue));
    }
    else if (mode == 2) {
        string s;
        cin >> s;
        write(s);
    }
    else if (mode == 3) {
        int n;
        cin >> n;

        uint8_t buffer[100];
        for (int i = 0; i < n; i++) {
            unsigned int temp;
            cin >> temp;
            buffer[i] = static_cast<uint8_t>(temp);
        }
        write(buffer, static_cast<size_t>(n));
    }

    return 0;
}

Solving Approach

 

 

 

 

Upvote
Downvote
Loading...

Input

1 0

Expected Output

0