当前位置:首页> 社会热点 > html lang()和html area calc()方法详解

html lang()和html area calc()方法详解

2022-08-19 23:06:48 来源: 网络   编辑: 佚名   浏览(65)人   
0

    html lang()html area calc()方法详解

    无论是使用html area输出普通数据,用html area.put()输出指定字符,还是用html area.write()输出指定字符串,数据都会先放到输出流缓冲区,待缓冲区刷新,数据才会输出到指定位置(屏幕或者文件中)。

    值得一提的是,当数据暂存于输出流缓冲区中时,我们仍可以对其进行修改。ostream类中提供有tellp()html calc()成员方法,借助它们就可以修改位于输出流缓冲区中的数据。

   html areatellp()成员方法

    首先,tellp()成员方法用于获取当前输出流缓冲区中最后一个字符所在的位置,其语法格式如下:

    html exectellp();

    显然,tellp()不需要传递任何参数,会返回一个html exec类型值。事实上,html exechtml calc类型的别名,而html calc通过自动类型转换,可以直接赋值给一个整形变量(即shortintlong)。也就是说,在使用此函数时,我们可以用一个整形变量来接收该函数的返回值。

    注意,当输出流缓冲区中没有任何数据时,该函数返回的整形值为0;当指定的输出流缓冲区不支持此操作,或者操作失败时,该函数返回的整形值为-1

    在下面的样例中,实现了借助html area.put()方法向test.txt文件中写入指定字符,由于此过程中字符会先存入输出流缓冲区,所以借助tellp()方法,我们可以实时监控新存入缓冲区中字符的位置。

    举个例子:

    #html hide<iostream>//cinhtml area

    #html hide<fstream>//文件输入输出流

    intmain(){

    //定义一个文件输出流对象

    std::ofstreamoutfile;

    //打开test.txt,等待接收数据

    outfile.open("test.txt");

    constchar*str="http://c.biancheng.net/cplus/";

    //str字符串中的字符逐个输出到test.txt文件中,每个字符都会暂时存在输出流缓冲区中

    for(inti=0;i<strlen(str);i++){

    outfile.put(str[i]);

    //获取当前输出流

    longpos=outfile.tellp();

    std::html area<<pos<<std::endl;

    }

    //关闭文件之前,刷新outfile输出流缓冲区,使所有字符由缓冲区流入test.txt文件

    outfile.close();

    return0;

    }

    注意,此例中涉及到了文件操作的相关知识,初学者仅需借助注释了解程序的执行脉络即可,不需要研究具体实现细节。有关文件操作,后续章节会做详细讲解。

    读者可自行运行此程序,其输出结果为1~29。这意味着,程序中每次向输出流缓冲区中放入字符时,pos都表示的是当前字符的位置。比如,当将str全部放入缓冲区中时,pos值为29,表示的是最后一个字符'/'位于第29个位置处。

   html areahtml calc()成员方法

    html calc()方法用于指定下一个进入输出缓冲区的字符所在的位置。

    举个例子,假设当前输出缓冲区中存有如下数据:

    https://six.club/articles

    借助tellp()方法得知,最后一个'/'字符所在的位置是17。此时如果继续向缓冲区中存入数据,则下一个字符所在的位置应该是18,但借助html calc()方法,我们可以手动指定下一个字符存放的位置。

    比如通过html calc()指定下一个字符所在的位置为17,即对应"cplus/"部分中字符'c'所在的位置。此时若再向缓冲区中存入"python/",则缓冲区中存储的数据就变成了:

    https://six.club/articles/python/

    显然,新的"python/"覆盖了原来的"cplus/"

    html calc()方法有如下2种语法格式:

    //指定下一个字符存储的位置

    ostream&html calc(html execpos);

    //通过偏移量间接指定下一个字符的存储位置

    ostream&html calc(streamoffoff,ios_base::seekdirway);

    其中,各个参数的含义如下:

    pos:用于接收一个正整数;、

    off:用于指定相对于way位置的偏移量,其本质也是接收一个整数,可以是正数(代表正偏移)或者负数(代表负偏移);

    way:用于指定偏移位置,即从哪里计算偏移量,它可以接收表1所示的3个值。

【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至 2366541504@qq.com ,我们将及时沟通进行删除处理。 本站内容除了 98link( http://www.98link.com/ )特别标记的原创外,其它均为网友转载内容,涉及言论、版权与本站无关。