C++中 cin 与 cout 的用法

本文介绍了C++中整数在十进制、八进制、十六进制之间的转换方法,并展示了如何在代码中设置浮点数的精度。通过实例代码演示了十六进制输出、不同基数表示以及如何调整浮点数显示的精确度。


整数的基数:dec(十进制) ,   oct(八进制),    hex(十六进制)  。

具体实现见代码:

/**************************************************/
#include <iostream>
using namespace std;
int main()
{
  cout.setf(ios::hex, ios::basefield);  //十六进制
  cout << 100; // this displays 64
  return 0;
}
/**************************************************/
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
   int n;
   cout << "Enter a decimal number: ";   //输入一个十进制的数
   cin >> n;
   cout << n << " in hexadecimal is: "   //用十六进制表示为
        << hex << n << '\n'
        << dec << n << " in octal is: "  //用八进制表示为
        << oct << n << '\n'
        << setbase( 10 ) << n << " in decimal is: "  //十进制表示为
        << n << endl;
   return 0;
}
/**************************************************/

/********以整数开方为例介cin、cout中设置精度的用法************/
/*      
        设置浮点数精度:
        setprecision (必须带参数)
        precision (无参数时返回当前设置的精度)
        设置后,对以后的输出都有效。
        
*/
#include<iostream>
#include<ctype.h>
#include<iomanip>
#include<cmath>
using namespace std;
int main() {
    double ans=sqrt(3.0);
    cout<<setiosflags(ios ::fixed)
        <<"Square root of 2 with precisions 0-9\n"
        <<"precision se by the "
        <<"precision member function:"<<endl;
    for(int i=0; i<=9; i++) {
        cout.precision(i);
        cout<<ans<<endl;
    }
    cout<<"precision now is: "<<cout.precision()<<endl;
    for(int i=0; i<=9; i++) {
        cout<<setprecision(i)<<ans<<endl;
    }
    return 0;
}

/**************************************************/

基本都是根据别人的分享总结的,不是很全,以后会更新的。。。。
<think> 我们正在回答用户关于C++cincout的使用方法及相关知识的问题。根据引用内容,我们可以总结如下: 1. 引用[1]和[2]介绍了cincout的基本用法: - cin是用于输入对象,提取操作符>>一起使用,例如:`cin >> 变量;` - cout是用于输出的对象,插入操作符<<一起使用,例如:`cout << 输出内容;` - 换行方法有两种:使用操作符endl(如`cout << 输出内容 << endl;`)或换行符'\n'(如`cout << 输出内容 << '\n';`) 2. 引用[2]还提到: - cincout分别是iostream库和ostream库的对象,而<<和>>是C++输入输出运算符。 - 它们位于std命名空间中,因此使用时需要加上`std::`前缀,或者使用`using namespace std;`来避免每次都写`std::`。 3. 引用[5]提到头文件的区别: - 在C++中,推荐使用新版头文件(不带.h),例如`#include <iostream>`,并且使用`using namespace std;`。 此外,我们还可以补充一些相关知识: - 使用cin进行输入时,可以连续输入多个变量,例如:`cin >> a >> b;` - 使用cout输出时,可以连续输出多个内容,例如:`cout << "a=" << a << ", b=" << b << endl;` - 注意:cincout是类型安全的,并且能够自动识别基本数据类型,不需要像C语言中的printf和scanf那样指定格式符。 因此,我们可以组织回答如下: </think>### C++中`cin`和`cout`的使用方法及相关知识 #### 一、基础概念 1. **输入输出对象**: - `cin`(标准输入):`istream`类的对象,用于从键盘读取数据。 - `cout`(标准输出):`ostream`类的对象,用于向控制台输出数据。 二者均定义在`<iostream>`头文件中,属于`std`命名空间[^2][^5]。 2. **运算符作用**: - `>>`(提取运算符):`cin`配合,将输入数据存储到变量中。 - `<<`(插入运算符):`cout`配合,将数据插入输出。 运算符方向直观体现数据向(`cin >> 变量`;`cout << 内容`)[^1]。 --- #### 二、基本用法 ##### 1. 输入(`cin`) ```cpp #include <iostream> using namespace std; // 省略std:: int main() { int age; double salary; cout << "请输入年龄和工资:"; cin >> age >> salary; // 连续输入多个变量 return 0; } ``` - 输入数据时用空格/换行分隔变量。 ##### 2. 输出(`cout`) ```cpp cout << "姓名:" << name << endl; // endl换行 cout << "结果:" << result << '\n'; // '\n'换行 ``` - **换行方法**: - 操作符`endl`:输出换行并刷新缓冲区。 - 字符`'\n'`:仅输出换行[^1]。 --- #### 三、关键特性 1. **命名空间**: 需使用`std::`前缀(如`std::cin`),或通过`using namespace std;`省略[^2][^5]。 2. **类型安全**: 自动识别数据类型(无需像C的`printf`/`scanf`指定格式符): ```cpp int num = 10; cout << num; // 自动输出整型 ``` 3. **链式操作**: 支持连续使用`<<`或`>>`: ```cpp cout << "a=" << a << ", b=" << b << endl; cin >> x >> y >> z; ``` --- #### 四、相关对象扩展 1. **其他对象**: - `cerr`:无缓冲的标准错误(立即输出)。 - `clog`:带缓冲的标准日志[^2]。 2. **C语言对比**: | 特性 | C++ (`cin`/`cout`) | C (`scanf`/`printf`) | |--------------|--------------------------|----------------------| | 类型安全 | ✅ 自动识别类型 | ❌ 需手动指定格式符 | | 扩展性 | ✅ 支持运算符重载 | ❌ 不可扩展 | | 头文件 | `<iostream>` | `<stdio.h>` | --- #### 五、注意事项 1. **缓冲区问题**: 混合使用`cin`和`getline()`时,需清除缓冲区: ```cpp int num; string s; cin >> num; cin.ignore(); // 忽略残留的换行符 getline(cin, s); ``` 2. **错误处理**: 可通过检查状态处理输入错误: ```cpp if (!(cin >> num)) { cout << "输入无效!"; cin.clear(); // 清除错误标志 cin.ignore(1000, '\n'); // 跳过错误输入 } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值