istream用法大全

做校招题时cin/cout总是用不好,所以很有必要总结一下i/o的用法,完全掌握其用法才会得心应手! kai

1、streamsize gcount( ) const // 返回最后一次cin输出的字符个数,包括字符串结束符'\0';

// cin.gcount example
#include <iostream>     // std::cin, std::cout

int main () {
  char str[20];   

  std::cout << "Please, enter a word: ";
  std::cin.getline(str,20);    
  std::cout << std::cin.gcount() << " characters read: " << str << '\n';

  return 0;
}
Possible output:
Please, enter a word: simplify
9 characters read: simplify

2、istream::get()

single character (1)
int get();
istream& get (char& c);
c-string (2)
istream& get (char* s, streamsize n);
istream& get (char* s, streamsize n, char delim);
stream buffer (3)
istream& get (streambuf& sb);
istream& get (streambuf& sb, char delim);

第一种用法从cin中输出一个字符如cin.get(c);

第二种用法:

1)istream& get (char* s, streamsize n);
从cin或者istream中提取c风格的字符串,最大字符串长度为n,最后一个字符为‘\0’字符串结束字符: 

    char c[20];

    cin.get(c,20);

 如果写为:

   char* c;

    cin.get(c,20);

 为错误的写法,因为系统没有分配char* 指向的空间,无法从cin中读取数据放入有效的位置,可改为:

   char* c= new char[20];

    cin.get(c,20);

2)istream& get (char* s, streamsize n, char delim);

    delim为定界字符(delimiting characters),其默认值应该是'\n'(换行字符),如果人为定义的话可以是任意的你定义的字符,比如:

    cin.get(c,20,'a');  //当遇到a字符时,只取a字符前的字符串部分输出给c字符串,此时,a字符并不从cin输入缓冲区提取,留给后来的变量提取,而getline则直接丢弃该字符!;

3) 输出为streambuff,用法与2)相同;

3、istream& ignore (streamsize n = 1, int delim = EOF);  //丢弃多n个字符,或者遇到dlim为止;

 4、其他: 

  

int peek();  //偷看下一个字符而不从输入流提取;

istream& putback (char c);  //将c放入输入流;

istream& read (char* s, streamsize n);  //读取一串字符;
streamsize readsome (char* s, streamsize n);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值