Hej, i znów mam problem, czy showbase'm mogę w jakiś spsób wydrukować 0xA zamiast 0xa ? zależy mi aby porgram wypisywał duże litery po 0x... Nie wiem czy dobrze to wyjaśniłem, jeśli coś nie tak myślę, albo piszę to postaram się to poprawić.
hex showbase
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
1
Użyj std::uppercase
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
- Postów: 58
0
Problem jest chyba trochę bardziej złożony, napisałem taki program:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int x;
cin.unsetf(ios::basefield);
cout.setf(ios::showbase);
cout << uppercase;
while(cin >> x) {
cout << oct << x << ' ' << dec << x << ' '<< hex << x << '\n';
}
return 0;
}
Ale go w ten sposób chyba nie jestem w stanie sformatować ? Muszę mieć na wyjściu np : 0xF, a mam albo 0xf, albo 0XF, jestem jakoś w stanie to rozwiązać ?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
0
Nie możesz po prostu napisać cout << "0x" << hex << uppercase << x?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 58
0
na razie działa mi tylko tak, ale nie jest to chyba zbyt eleganckie
#include <iostream>
#include <string>
using namespace std;
int main()
{
int x;
cin.unsetf(ios::basefield);
cout.setf(ios::showbase);
cout << uppercase;
while(cin >> x) {
cout << oct << x<< ' ' <<dec << x << ' '<<"0x"<<noshowbase<<hex << x << '\n';
}
return 0;
}
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
0
Nie ustawiaj showbase żeby zaraz wyłączyć.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 58
0
Czyli to będzie najbardziej ,,elegancka" wersja ?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int x;
cin.unsetf(ios::basefield);
cout << uppercase;
while(cin >> x) {
cout << "0" << oct << x<< ' ' << dec << x << ' ' << "0x" << hex << x << '\n';
}
return 0;
}
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
0
basefield chyba też zbędne. Ale tak, tak mi się wydaje. Ewentualnie możesz własny modyfikator napisać, ale to więcej zachodu niż to warte imo.
- Rejestracja: dni
- Ostatnio: dni
0
https://wandbox.org/permlink/oNxHfiCl3GLFpqmG
A ios::basefield to tylko maska na ios::dec| ios::hex| ios::oct, więc niewiele to robi.