C++命名空间、输入输出

本文详细介绍了C++中的命名空间及其作用,强调了如何使用命名空间避免命名冲突。同时,深入探讨了C++的I/O流,包括cin、cout、cerr和clog的用法和区别。此外,还提到了dup和dup2函数在复制文件描述符方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命名空间

命名空间是为了解决命名冲突
Q:C语言是如何解决命名冲突的?
运算符: ::(作用域限定符)作用域限定符
命名空间可以嵌套
尽量少用using导入命名空间 因为会导致命名冲突
Using namespace std//此命名空间存放的是C++相对C升级的功能(库文件 函数变量)
//cout printf 缓冲区

cin.getline()

用法:接收一个字符串,可以接收空格并输出

#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}

cin cout cerr clog

Cin :一个istream对象,用来从标准输入读取数据。
Cout:一个ostream对象,用于将数据写入标准输出。输出的数据是一种被动缓冲,经过缓冲区而直接输出(该种输出方式可以看到整段和这句同时出现显示设备上)
cerr:一个ostream对象,关联到标准错误,通常写入到与标准输出相同的设备。默认情况下,写到cerr数据是不缓冲的(未经缓冲区直接输出,可以看到字母是一个个输出)
clog:一个ostream对象,写到clog的数据是被缓冲的,通常用于生产报告程序的执行信息,存入一个日志文件中。

#include<iostream>
using namespace std;
int main()
{
 const char *ptr = "hello world";
    char temp = 'X';
    int num = 6;
    double b = 1.314;

    cout << "hello world\n"
    <<""
    <<"hi" << endl;
    cout << "ptr = " << ptr << endl;
    cout << "temp = " << temp << endl;
    cout << "num = " << num << endl;
    cout << " b = " << b << endl;
    cout << "ptr = " << hex << num << endl;
    cout << "&num" << &num << endl;
    return 0;
    }

在这里插入图片描述

#include<iostream>
using namespace std;
int main()
{
int num;
char src[100];
double b;
cout << "please input num:";
cin >> num;
getchar();
cout << "please input src:";
cin.getline(src,100);
cout << " num : " << num << endl;
cout << "src : " << src << endl;
}

在这里插入图片描述

#include<iostream>
using namespace std;
int main()
{
cerr << "hello world" << endl;//dup dup2
clog << " hello world" << endl;
return 0;
}

在这里插入图片描述

dup和dup2函数

这两个函数都可以来复制一个现有的文件描述符
关于dup函数,当我们调用它的时候,dup会返回一个新的描述符,这个描述一定是当前可用文件描述符中的最小值。我们知道,一般的0,1,2描述符分别被标准输入、输出、错误占用,所以在程序中如果close掉标准输出1后,调用dup函数,此时返回的描述符就是1。
对于dup2,可以用fd2指定新描述符的值,如果fd2本身已经打开了,则会先将其关闭。如果fd等于fd2,则返回fd2,并不关闭它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值