c/c++输入函数总结

输入类函数总结

一.getline();
1.getline在c++的库函数中有两个,一个是包含在string文件中

 template<typename _CharT, typename _Traits, typename _Alloc>
    inline basic_istream<_CharT, _Traits>&
    getline(basic_istream<_CharT, _Traits>& __is,
        basic_string<_CharT, _Traits, _Alloc>& __str)
    { return getline(__is, __str, __is.widen('\n')); }

函数的参数是(流,str);

// extract to string
#include 
#include 

int main ()
{
  std::string name;

  std::cout << "Please, enter your full name: ";
  std::getline (std::cin,name);
  std::cout << "Hello, " << name << "!\n";

  return 0;
}

2.第二个包含在iostream中

   __istream_type&
      getline(char_type* __s, streamsize __n)
      { return this->getline(__s, __n, this->widen('\n')); }
   __istream_type&
      getline(char_type* __s, streamsize __n, char_type __delim);

这两个是成员函数,需要对象来调用

// istream::getline example
#include      // std::cin, std::cout

int main () {
  char name[256], title[256];

  std::cout << "Please, enter your name: ";
  std::cin.getline (name,256);

  std::cout << "Please, enter your favourite movie: ";
  std::cin.getline (title,256);

  std::cout << name << "'s favourite movie is " << title;

  return 0;
}

二.gets();
gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
此函数比较危险,谨慎使用
三.get();
1.istream& get ( char& c );
2.istream& get ( char* s, streamsize n );
3.istream& get ( char* s, streamsize n, char delim );

后面的两个函数和getline的区别是getline调用之后指针的位置指向了delim之后的字符,而get函数调用之后指针位置在delim所处的位置。


三.scanf()函数

scanf函数详解

你可能感兴趣的:(c/c++输入函数总结)