I wrote a code like this:
int d{ 0 };
cin >> setw(2) >> d;
But it seems setw()
has no effect on reading integers.
setw()
is not designed to be used with integral types.
What would it do? Extract the last two decimal digits of the integer? What would happen if you had put std::hex
into the stream?
The best approach is to read the number then deal with it yourself. For example, if you want to extract the least significant two digits, use d % 100
subsequently; making an extra correction for negative numbers.