C++(笔记)输入输出总结

本文详细介绍了C++中的IO流概念及其应用,包括输出流(cout)和输入流(cin)的基本操作,如忽略字符、读取字符串及字符等,并通过实例展示了如何实现摄氏度与华氏度之间的转换。
部署运行你感兴趣的模型镜像

一、输出流(cout)

cout 是一个对象
是一个输出流对象,它是“console out(控制台输出)”的缩写,它 属于basic_ostream类的对象。ostream类在iostream头文件中定义

什么是输出流?

例如数据可以从键盘流入程序,又可以从程序流向屏幕,打印机等,动态的


二、using namespace std;解析

1.这条指令带给我们一个全新的概念:名字空间
2.就是c++标准库所使用的所有标识符(即类、函数、对象等的名称)都是在同一个特殊的名字空间(std)中定义的
3.其实如果没有这条指令,那么在代码中cout和endl前都要加std:: std::cout<<”hello world”; ,所以这条指令其实是偷懒用的


三、<<符号

<<这个符号在C里是位运算符,在C++里是一个输出操作符,所以这里会有重载的方法


四、输入流(cin)应用

(1).应用cin.ignore()和cin.getline()//其实点后面的代表操作的动作,前面代表对象
int main()
{ 
    char buf[20];//可以输入19个字符,字符串以0结尾
    cin.ignore(7);//忽略前7个字符
    cin.getline(buf,10);//buf是存放的地方,10是存放多少个
    cout<<buf<<endl;
return 0;
}
//I like lanxidame!
//lanxidame
//为什么没有感叹号?  因为字符串最后一个是0,!被0代替
//cin.ignore(100,‘\n’);作用是前100个字符里只要遇见回车,那么这100个字符就不管用了

(2).应用cin.get()和cin.peek()
int main()
{
    char p;
    cout<<"请输入一段文本:\n";

    while(cin.peek()!='\n')//peek的作用就是在字符里挑取一个字符看是否等于回车,如果不等于回车那就执行下面语句,等于退出循环,所以peek只是挑取出来检查一下又放回去,不会做其他改变(不会把缓冲流里的东西给删掉)
    {
        p=cin.get();//作用:获取一个字符,赋值给p,也可以写成cin.get(p);与C中getchar()功能差不多
        cout<<p;
    }
    cout<<endl;
return 0;
}
//I like lanxidame!
//I like lanxidame!

(3).应用cin.gcount()和cin.read()
int main()
{
    const int SIZE=50;//类似与宏定义,但要比宏定义要好
    char buf[SIZE];

    cout<<"输入一段文本:";
    cin.read(buf,20)//从buf中读取20个字符

    cout<<"字符串收集的字符数为:"//gcount,计算提取到的多少字符
    <<cin.gcount()<<endl;

    cout<<"输入的文本信息是:";
    cout.write(buf,20);//从缓冲区里输出20个字符
    cout<<endl;
return 0;
}
//I love laximade!!!!!!!!!!!!!!
//I love laximade!!!!!

五、摄氏度与华氏度转化源码

#include<iostream>
using namespace std;
int main()
{
    //华氏温度==摄氏温度*9.0/5.0+32
    const unsigned short add=32;//const与define差别不大。但还是有一定的区别
    const double ratio=9.0/5.0;

    double tempIN,tempOUT;//定义存放输入的温度和转化完成后输出的温度
    char typeIN,typeOUT;//判断单位用的C和F

    cout<<"请以【xx.x c】或者【xx.x F】格式输入一个温度";
    cin>>tempIN>>typeIN;//这样的格式接受同时两种输入。32.4 C表示32.4给前面一个变量空格之后给另一个变量
    cin.ignore(100,'\n');//将回车忽略,就是把其他无意义的输入忽略,100随便写的,足够大就好
    cout<<"\n";//为了美观

    switch(typeIN)
    {
        case 'C':
        case 'c':
            tempOUT=tempIN*ratio+add;
            typeOUT='F';
            typeIN='C';
            break;

        case 'F':
        case 'f':
            tempOUT=(tempIN-add)/ratio;
            typeOUT='C';
            typeIN='F';
            break;
        default:
            typeOUT='E';
            break;
     } 
    if(typeOUT!='E')
    {
        cout<<tempIN<<typeIN
          <<"="<<tempOUT
          <<typeOUT<<"\n\n";
    }
    else
    {
        cout<<"输入错误"<<"\n\n";
    }
    cout<<"请输入任何字符结束程序"<<"\n\n";
    cin.get();//
    return 0;
}

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值