C++中的IO流

iostream 四种流对象: cin  标准输入流对象 

    cout 标准输出流对象

     cerr 标准错误流对象

     clog 标准错误流对象

clog与cerr均是在显示器上显示出错信息,区别是cerr是不经过缓冲区,直接向显示器上输出有关信息,而clog中的信息存放在缓冲区中,缓冲区满后或遇endl时向显示器输出。

cout 对象遇到endl时会立即取出缓冲区的数据,加上一个换行符并清空缓冲区。

cin输入时,当碰到空格即停止接受输入,但空格后的数据仍存在于缓冲区

cin.get(ch) ,输入单个字符。

cin.get(buff,n,'ch')从输入流中读取n-1个字符存储到buff数组里,如果在读到n-1个字符前遇到给定的终止字符 'ch' 则提前结束读取。

cout.flush 清空缓冲区

cin.ignore(a,ch) 如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止;否则,它继续等待。它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。比如可以这么用:cin.ignore(1024,'\n'),通常把第一个参数设置得足够大,这样实际上总是只有第二个参数'\n'起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。cin.ignore()默认参数是cin.ignore(1,EOF)

cin.peek()的返回值是一个char型的字符,其返回值是指针当前指向的字符,但它只是观测指针停留在当前位置并不后移;如果要访问的字符是文件结束符,则函数值是EOF(-1) ,可以通过其返回缓冲区当前的第一个字符

cin.putback(ch) 是将 cin吃进去的字符给吐出来,即将读入到变量的数据又重新放入了缓冲区中原来的位置。

Eg:   char ch ;

  cin >> ch ;  //  若输入 liujie ,此时缓冲区中为 iujie

  // cin.putback(ch)  // 将‘l’放回缓冲区

cin.putback('j')  // 将 ‘j’放回缓冲区, 若再调用 cin将会将‘jiujie’输入到变量中。

cin >> name ; // 此时会将缓冲区的liucheng输入到name中

另外,还有 getline(cin,str) ;

cin.clear 用于由于输入错误导致不能继续输入时清除cin标志

cin.sync用于清除当前输入缓冲区的所有内容


cin.getline(name , 7 , 'G') ,将输入流中的字符存入name中,2种情况均会停止输入到name中,1:已经存了6个字符,2:遇到了字符G(G不会存入name中)

cout.put(a)  输出字符到显示器

cout.write(name, n ) 输出 字符串到显示器,n个字符

猜你喜欢

转载自blog.csdn.net/u013565071/article/details/79237837