UART Write Overloading

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

using namespace std;

void write(uint8_t value) {
    cout << static_cast<unsigned int>(value) << endl;
}

void write(const string& s) {
    cout << s << endl;
}

void write(const uint8_t* buffer, size_t size) {
    for (size_t i = 0; i < size; i++) {
        // Print each byte as a number followed by a space
        cout << static_cast<unsigned int>(buffer[i]) << (i == size - 1 ? "" : " ");
    }
    cout << endl;
}

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