• Scanf函数返回值就是读出的变量个数,如:scanf( “%d  %d”, &a, &b ); 如果只有一个整数输入,

    返回值是1,如果有两个整数输入,返回值是2,如果一个都没有,则返回值是-1。

  • EOF是一个预定义的常量,等于-1
  • cin>>

    用法1:输入一个数字或字符
    用法2:接收一个字符串,遇“空格”、“TAB”、“回车”就结束

  • cin.getline()

   用法:接收一个字符串,可以接收空格并输出

  • getline()

   用法:接收一个字符串,可以接收空格并输出,需包含“#include<string>”


注意的问题:


1、cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数
2、当同时使用cin>>,getline()时,需要注意的是,在cin>>输入流完成之后,getline()之前,需要通过的方式将回车符作为输入流cin以清除缓存,如果不这样做的话,在控制台上就不会出现getline()的输入提示,而直接跳过,因为程序默认地将之前的变量作为输入流。
str="\n";
getline(cin,str);

C语法:

      char buf[20];   gets(buf); 
C++语法:
       如果用string buf;来保存:
       getline( cin , buf ); 
       如果用char buf[ 255 ]; 来保存:     cin.getline( buf, 255 );
  

  • scanf(“ %s%s”,str1,str2),在多个字符串之间用一个或多个空格分隔;

   若使用gets函数,应为gets(str1); gets(str2); 字符串之间用回车符作分隔。
   通常情况下,接受短字符用scanf函数,接受长字符用gets函数。
   getchar函数每次只接受一个字符,经常c=getchar()这样来使用。

  • cin.getline的用法:

   getline 是一个函数,它可以接受用户的输入的字符,直到已达指定个数,或者用户输入了特定的字符。它的函数声明形式(函数原型)如下:
    istream& getline(char line[], int size, char endchar = '\n');
   不用管它的返回类型,只关心它的三个参数:
   char line[]: 就是一个字符数组,用户输入的内容将存入在该数组内。
   int size : 最多接受几个字符?用户超过size的输入都将不被接受。
   char endchar :当用户输入endchar指定的字符时,自动结束。默认是回车符。
   结合后两个参数,getline可以方便地实现: 用户最多输入指定个数的字符,如果超过,则仅指定个数的前面字符有效,如果                没有超过,则用户可以通过回车来结束输入。
   char name[4];
   cin.getline(name,4,'\n');
   由于 endchar 默认已经是 '\n',所以后面那行也可以写成:
    cin.getline(name,4);

  • 读入字符串

while(scanf("%s",str)!=EOF)
{   }
while(gets(str)!=NULL)
{   }

  • 读入多个字符串(注意读取的下标)

while(cin>>a+1)
    {
        cin>>b+1;//多次从下标1开始读入 
        int alen=strlen(a+1);//由于读入时从下标1开始,所以读取长度业也从1开始 
        int blen=strlen(b+1);
 

持续更新中·······

欢迎讨论交流~非诚勿扰哦  邮箱:1308989543@qq.com