3
votes

Is there any way to print the integer along with its sign in c++...i.e. by default if the number is negative we would get a - sign printed. In the same way can we get + before the positive numbers.

int x=-1;
cout<<"x="<<x;

gives output x=-1

but,..

int x=+1;
cout<<"x="<<x;

gives output as x=1 but how do i get it printed as x=+1

I know we can take cases by using if-else for x>0 and x<0;..but without using the if-else is there any direct way of printing in c++

3

3 Answers

11
votes

Use std::showpos:

int x = 1;
std::cout << "x=" << std::showpos << x;
0
votes

C++20 std::format option +

According to https://en.cppreference.com/w/cpp/utility/format/formatter#Standard_format_specification the following should hold:

// "1,+1,1, 1"
std::cout << std::format("{0:},{0:+},{0:-},{0: }", 1);

// "-1,-1,-1,-1"
std::cout << std::format("{0:},{0:+},{0:-},{0: }", -1);

More information at: std::string formatting like sprintf

-1
votes

How about:

cout<<"x="<<(x>0)?"+":""<<x;

it's a bit clumsy, but fits the bill