Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何理解cout的默认格式_C++_Hex_Decimal_Ostream - Fatal编程技术网

C++ 如何理解cout的默认格式

C++ 如何理解cout的默认格式,c++,hex,decimal,ostream,C++,Hex,Decimal,Ostream,我希望这不是一个天真的问题。C++中隐式执行类型转换吗?因为我已经要求用户以十六进制格式输入一个数字,然后当我将该数字输出到屏幕上而不提及其格式时,它将显示为十进制格式。我是不是遗漏了什么 #include <iostream> #include <iomanip> using namespace std; int main() { int number = 0; cout << "\nEnter a hexadecimal n

我希望这不是一个天真的问题。C++中隐式执行类型转换吗?因为我已经要求用户以十六进制格式输入一个数字,然后当我将该数字输出到屏幕上而不提及其格式时,它将显示为十进制格式。我是不是遗漏了什么

#include <iostream>
#include <iomanip> using namespace std; 

int main() { int number = 0; 
             cout << "\nEnter a hexadecimal number: " << endl; 
              cin >> hex >> number;
            cout << "Your decimal input: " << number << endl; number; 
                }
#包括
#包括使用名称空间标准;
int main(){int number=0;
cout十六进制>>数字;

cout这里没有十六进制和十进制之间的类型转换。在内部,您的数字将以2的形式存储(二进制表示)无论它是以十六进制还是十进制数字的形式读入。当输入/输出数字时,从dec/hex字符串转换为整数,反之亦然

使用
std::hex
告诉流您告诉流更改其整数I/O的默认数字基数。没有它,默认值为十进制。因此,如果您仅对
std::cin
执行此操作,则它将数字读取为十六进制,但
std::cout
仍输出十进制数。如果您希望它也将其基数更改为十进制十六进制,您必须对std::cout执行相同的操作:

std::cout << std::hex << "Your hexadecimal input: " << number << std::endl;

std::cout数字在iostreams中默认以10为基数打印出来,是的,就像在默认情况下读入时预期以10为基数一样。数字的文本表示有格式。数字没有格式。