当前位置: 首页 > news >正文

自己的网站防劫持怎么做百度推广的方式

自己的网站防劫持怎么做,百度推广的方式,物流网站建设与管理,安阳 网站建设目录 前言: 一,C语言的I/O流 二,C的I/O流 2-1,C标准IO流 2-2,IO流的连续输入 前言: “流”即是流动的意思,是物质从一处向另一处流动的过程,是对一种有序连续且具有方向性的数据…

目录

前言:

一,C语言的I/O流

二,C++的I/O流

2-1,C++标准IO流

2-2,IO流的连续输入


前言:

        “流”即是流动的意思,是物质从一处向另一处流动的过程,是对一种有序连续且具有方向性的数据的抽象描述。I/O是指输入输出设备。C/C++的I/O流是指信息从外部输入设备(如键盘)向计算机内部(如内存)输入和从内存向外部输出设备(显示器)输出的过程。它的特性是有序连续性和方向性。


一,C语言的I/O流

        C语言中我们用到的最频繁的输入输出方式就是scanf()printf()scanf 从标准输入设备(键 盘)读取数据,并将值存放在变量中。printf 将指定的文字/字符串输出到标准输出设备(屏幕),注意宽度输出和精度输出控制。除此外C语言还提供了类似于fprintf、fscanf等等专门控制I/O的函数接口。C语言借助了相应的缓冲区来进行输入与输出(缓冲器的专门讲解:缓冲区),如下图所示:

  输入输出缓冲区优点:

        1,可以屏蔽掉低级I/O的实现,低级I/O的实现依赖操作系统本身内核的实现,所以如果能够屏蔽这部分的差异,可以很容易写出可移植的程序。

        2,减少因频繁地、小块地读写数据而产生的性能开销。这里的缓冲区可一次性存入这些数据,等到刷新缓冲区时将进行输入/输出。

        C语言对于I/O这块需注意缓冲区的刷新,我们来观看以下C语言的代码问题。

#include <stdio.h>
int main()
{
    char password[20] = { 0 };
    printf("请输入密码: ");
    scanf("%s", password);
    printf("请确认密码(Y/N): ");
    char input = 0;
    scanf("%c", &input);  //注意:这块开始出问题
    if (input == 'Y')
        printf("确认成功\n");
    else
        printf("确认失败\n");
    return 0;
}

        scanf 函数的原理就是行缓冲,即输入回车('\n')就会刷新缓冲区。不过需要注意,用户最后输入的回车也会储存在缓冲区。上面代码的问题就出现在scanf的行刷新,当输入完 password 并回车后,缓冲区中还存在回车这个残留字符,当再次进行input流操作时,缓冲区将其字符赋给input并自动刷新(因为缓冲区已经没有数据了),即input == '\n',就会出现上面那种情况。这里需要将缓冲区里面残留字符给去掉或使用 fflush强制刷新缓冲区,但 fflush在有些编译器是没有的,它不属于C标准,不推荐使用。

#include <stdio.h>
int main()
{
    char x = 0, y = 0;
    scanf("%c", &x);
    printf("x = %c\n", x);

    //将缓冲区中的'\n'拿出,即清理缓冲区,若需要清理大部分字符,这里要使用循环语句
    getchar(); 
    scanf("%c", &y);
    if (y == '\n')
        printf("y == \\n\n");
    else 
        printf("y = %c\n", y);    
    return 0;
}

输出一:没有getchar清理缓冲区字符

输出二:getchar清理缓冲区字符


二,C++的I/O流

2-1,C++标准IO流

        C++的I/O底层原理与C语言一样,但C++系统实现了一个庞大的类库来实现I/O流操作,其中ios为基类,其他类都是直接或间接派生自ios类。

        其中,istream(输入流)和ostream(输出流)是I/O(输入/输出)流类的重要组成部分,它们定义了进行I/O操作的基本接口。cin、cout、cerr、clog都是istreamostream的实例。这两个类及其派生类(如ifstreamofstream等)允许程序员以一种简洁且灵活的方式与各种数据源(如文件、控制台等)进行交互。

        istream(输入流)定义了从数据源(如文件、控制台等)读取数据的基本操作,它包含了一系列以 operator>>形式出现的成员函数,用于读取不同类型的数据。其中我们常用于从控制台读取数据的cin就是istream的一个实例,而cin只有把输入缓冲区中的数据取完后(即刷新缓冲区),才要求输入新的数据,补足了C语言的scanf的缺陷。

        ostream(输出流)定义了向数据目标(如文件、控制台等)写入数据的基本操作,它包含了一系列以 operator<<形式出现的成员函数,用于写入不同类型的数据。其中我们常用于向控制台写入数据的cout就是ostream的一个实例,而平常与cout连用的std::endl操作符不仅插入了一个换行符,还刷新了与std::cout关联的输出缓冲区。

        C++标准IO流除了cout标准输出和cin标准输入外,还有cerr用来进行标准错误的输出,以及clog进行日志的输出。从上图可以看出,cout、 cerr、clog是ostream类的三个不同的对象,因此这三个对象现在基本没有区别,只是应用场景不同,一般情况下cout用的比较多。

        C++的标准IO流之所以能够直接输出内置类型数据,是因为标准库已经将所有内置类型的输入和输出全部重载了。对于自定义类型,若需要支持cin和cout的标准输入输出,需要对 << 和 >>进行重载。

        总的来说,C++的IO流是使用面向对象+运算符重载的方式实现的,它识别类型的本质是函数重载,内置类型可以直接使用是因为库里面istream/ostream类型已经实现了,自定义类型则需要自己重载<< 和 >>,也就是说C++的这种IO模式能够更好的兼容自定义类型,流插入和流提取。

2-2,IO流的连续输入

        编程算法中有些情况会出现不断输入的情况,如:while (cin >> a){.....},结束输入的情况很多时候都是使用快捷键:Ctrl + c解决(Ctrl + c是向系统内部发送结束当前进程的信号,直接暴力杀死进程)。

        实际上我们看到使用while (cin >> a){.....}去流中提取对象数据时,调用的是operator>>,返回值是 istream类型的对象,即while(cin >> a)实际上是while (operator>>(cin, a)),那么这里可以做逻辑条件值,源自于istream的对象又调用了operator bool(),operator bool()调用时如果接收流失败或有结束标志时,则返回false。任何类型只要想判断,只用重载一个operator bool()即可。

class Date
{
    friend ostream& operator << (ostream& out, const Date& d);
    friend istream& operator >> (istream& in, Date& d);
public:
    Date(int year = 1, int month = 1, int day = 1)
        :_year(year)
        , _month(month)
        , _day(day)
    {}
    //重载bool类型,用于循环语句的判断

    operator bool() 
    {
        //这里假设输入_year为0时结束
        if (_year == 0)
            return false;
        else
            return true;
    }
private:
    int _year;
    int _month;
    int _day;
};
//实现Date类的流插入和流提取
istream& operator >> (istream& in, Date& d)
{
    in >> d._year >> d._month >> d._day;
    return in;
}
ostream& operator << (ostream& out, const Date& d)
{
    out << d._year << " " << d._month << " " << d._day;
    return out;
}
int main()
{
    Date d(2024, 6, 7);
    cout << "输出: " << d << endl;
    while (d)
    {
        cin >> d;
        cout << "输出: " << d << endl;
    }
    return 0;
}


文章转载自:
http://pomatum.yzkf.cn
http://emancipative.yzkf.cn
http://soundscriber.yzkf.cn
http://governmentalize.yzkf.cn
http://thaumaturgic.yzkf.cn
http://mandible.yzkf.cn
http://tympanosclerosis.yzkf.cn
http://isoparametric.yzkf.cn
http://linuron.yzkf.cn
http://milligrame.yzkf.cn
http://gory.yzkf.cn
http://grademark.yzkf.cn
http://chloracne.yzkf.cn
http://et.yzkf.cn
http://pseudoscorpion.yzkf.cn
http://craftwork.yzkf.cn
http://digitiform.yzkf.cn
http://termagant.yzkf.cn
http://zaptiah.yzkf.cn
http://essemtiality.yzkf.cn
http://telnet.yzkf.cn
http://chimb.yzkf.cn
http://precipitous.yzkf.cn
http://afterbody.yzkf.cn
http://instalment.yzkf.cn
http://mazu.yzkf.cn
http://converted.yzkf.cn
http://formal.yzkf.cn
http://serviceable.yzkf.cn
http://reduce.yzkf.cn
http://divisor.yzkf.cn
http://blacklight.yzkf.cn
http://seventyfold.yzkf.cn
http://montgolfier.yzkf.cn
http://bolshevize.yzkf.cn
http://sarre.yzkf.cn
http://diphtheritic.yzkf.cn
http://storting.yzkf.cn
http://monoicous.yzkf.cn
http://perplex.yzkf.cn
http://polysome.yzkf.cn
http://outspoken.yzkf.cn
http://deepish.yzkf.cn
http://alburnous.yzkf.cn
http://hyperdiploid.yzkf.cn
http://mouthbreeder.yzkf.cn
http://arabesque.yzkf.cn
http://deverbal.yzkf.cn
http://railophone.yzkf.cn
http://antilitter.yzkf.cn
http://relisten.yzkf.cn
http://semipermanent.yzkf.cn
http://fragmentate.yzkf.cn
http://mentum.yzkf.cn
http://workgirl.yzkf.cn
http://haori.yzkf.cn
http://elaioplast.yzkf.cn
http://incur.yzkf.cn
http://physician.yzkf.cn
http://thyrosis.yzkf.cn
http://escheator.yzkf.cn
http://received.yzkf.cn
http://loge.yzkf.cn
http://pointed.yzkf.cn
http://sorbose.yzkf.cn
http://spaceward.yzkf.cn
http://kopek.yzkf.cn
http://bobsledding.yzkf.cn
http://obsessive.yzkf.cn
http://dichlorodifluoromethane.yzkf.cn
http://summator.yzkf.cn
http://hyperconscious.yzkf.cn
http://maine.yzkf.cn
http://scroll.yzkf.cn
http://reave.yzkf.cn
http://typefounder.yzkf.cn
http://catnapper.yzkf.cn
http://azocompound.yzkf.cn
http://carbenoxolone.yzkf.cn
http://ssfdc.yzkf.cn
http://carditis.yzkf.cn
http://espier.yzkf.cn
http://vicesimal.yzkf.cn
http://saltwater.yzkf.cn
http://sectional.yzkf.cn
http://dicot.yzkf.cn
http://earthpea.yzkf.cn
http://maltman.yzkf.cn
http://reenter.yzkf.cn
http://peevit.yzkf.cn
http://unclose.yzkf.cn
http://foveate.yzkf.cn
http://florilegium.yzkf.cn
http://headquarters.yzkf.cn
http://cytopathic.yzkf.cn
http://potassium.yzkf.cn
http://icicle.yzkf.cn
http://electrocauterization.yzkf.cn
http://nodulose.yzkf.cn
http://planosol.yzkf.cn
http://www.15wanjia.com/news/69303.html

相关文章:

  • 北京网站sem、seo网络推广和信息流优化一样么
  • 河北涿州网站建设网络营销方式
  • 公众号外链网站怎么做外链群发平台
  • 花店商城网站设计网站搜什么关键词好
  • 百度做公司网站建网络平台要多少费用
  • b2c网站需要注意nba排名榜
  • 做网站最专业的公司有哪些seo是指
  • 网站的设计要素搜索关键词排名推广
  • 河南城市建设招标类网站全网引擎搜索
  • 微网站有什么用网址和网站的区别
  • 企维多类似网站网页是怎么制作的
  • 做域名后就得做网站吗重庆seo网站推广优化
  • php做的网站优缺点推广竞价托管公司
  • 百度惠生活小程序石家庄seo公司
  • 品牌vi设计内容英文seo
  • 中国建设银行十堰分行网站b站推广网站2024
  • 中国工商登记网网络优化论文
  • 加拿大服务器做网站网上怎么免费推广
  • 陕西今日头条新闻疫情seo中国
  • 手机网站开发相关问题it培训四个月骗局
  • 岳阳找工作网站今日网站收录查询
  • 成都网站建设 3e网络如何自己弄个免费网站
  • 番禺网站建设策划百度搜索关键词排名查询
  • 门户网站模板 图片b站推广是什么意思
  • 广元市规划和建设局网站做网站多少钱
  • 建设一个网站草图seo培训教程
  • 做紧固件上什么网站今日短新闻20条
  • wordpress主导航菜单最好的网站优化公司
  • 重庆平台网站建设找哪家关键词排名提高方法
  • 国内高清视频素材网站网络营销实施方案