istream用法大全

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

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

// cin.gcount example
#include      // std::cin, std::coutint 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);



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部