C++中各种输⼊函数的⽤法总结
1.scanf()函数
原型:int scanf(const char *restrict format,......);
⼊⼝参数:第⼀个参数是格式字符串,它指定了输⼊的格式,......格式化后的字符串存取地址。
返回值:函数返回值为int类型,如果读取到了“⽂件结束”则返回EOF,EOF为Ctrl+z或者Ctrl+d。其他情况则返回int型数字,例如:int res = scanf("%d %d",&a,&b);如果a,b都读取成功,则返回2;如果a,b只读取成功了⼀个,则返回1;如果a,b都没有读取成功,则返回0.
说明:scanf()函数是C语⾔库中的函数,但由于C++的向下兼容性,所以在C++中也可以使⽤此函数。次函数是从标准输⼊流stdio(⼀般是键盘输⼊)中读取数据,并将其按照指定格式输⼊到制定地址。
头⽂件:#include <stdio.h>
⽤例:
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int a,b;
scanf("%d %d",&a,&b); //注意此处输⼊的格式,两个输⼊数字之间要以空格分隔开来。
printf("%d %d",a,b);
}
2.cin()类(此类命名空间都在std中,⽆需添加头⽂件)。
2.1.cin>>函数
说明:当我们从键盘输⼊时,有⼀个缓冲区,当输⼊结束时会将所输⼊的数据存到缓冲区。⽽cin>>的作
⽤就是从缓冲区读数据,所以当缓冲区数据本来就有残留时,会出现读取出错的问题。值得⼀提的是:cin函数遇到空格、TAB、换⾏时读取结束。
⽤例:
1.输⼊⼀个字符串。
  #include <iostream>
  using namespace std;
  void main ()
  {
    char a[10];
    cin>>a;
    cout<<a<<endl;
  }
  输⼊:aaabbbccc
  输出:aaabbbccc
  输⼊:aaa bbb ccc
  输出:aaa
  2.输⼊⼀个数字。
  #include <iostream>
  using namespace std;
  void main ()
  {
    int a,b;
    cin>>a>>b;
    cout<<a+b<<endl;
  }
  输⼊:1回车2回车
  输出:3
2.()函数
原型:该函数有三种形式,分别是char ch = (), (char ch), (array,length)
() 和 (char ch)的⽤法
这两个函数功能基本⼀样,都是读取缓冲区的⼀个字符,遇到换⾏符结束,但是这两个函数都不会丢弃缓冲区⾥边的空格和换⾏符。char ch = (), (char ch)这两句可得到相同的结果。
⽤例:
#include <iostream>
  using namespace std;
void main()
{
char ch1,ch2;
<(ch1);
ch2 = ();
cout<<ch1<<endl;
cout<<ch2<<endl;
}
输⼊:a换⾏
输出:a
(此处有⼀⾏空⾏,因为不会丢弃缓冲区⾥边的空⾏)
-
--------------------------------------------------------------------
(array,length)
这个函数是从缓冲区读取字符串,其中array是字符串接受地址,length-1是字符串长度,因为最后⼀个字符必须存储'\0'结束符,所以此函数只能接受length-1个字符。
⽤例:
#include <iostream>
using namespace std;
void main()
{
char ch[5];
<(ch,5);
cou<<ch<<endl;
}
输⼊:abcdefghi
输出:abcd
2.line(string str,int length)函数
说明:接收⼀个长度为length-1的字符串,包括空格,遇到换⾏结束。
#include<iostream>
  using namespace std;
  int main()
  {
    char ch[10];
    line(ch,5);
    cout<<ch<<endl;
    return0;
  }
  输⼊:aaaaaaaa
  输出:aaaa
原型:ssize_t getline(char **lineptr,size_t *n,FILE *stream);(在C语⾔的GCC扩展定义中)
字符串长度为0  getline(cin,string s);(在C++中)
说明:getline不是C语⾔的库函数,⽽是GCC的扩展定义或者C++库函数,在C语⾔中和C++中的使⽤是不同的.
⽤例1:(在C++中,应包含头⽂件<string>,读取字符串包含空格,遇到换⾏结束,不包括换⾏)
#include <iostream>
using namespace std;
int main()
{
string s;
getline(cin,s);
cout<<s<<endl;
return0;
}
输⼊:abcdefgh换⾏
输出:abcdefgh
⽤例2:(在C语⾔中,GCC扩展定义)
待补充。。。。。。
4.gets()函数
原型:char *gets(char *buffer);
⼊⼝参数:从缓冲区读取字符串后的写⼊地址
返回值:读取成功后返回与⼊⼝参数buffer相同的地址。读取错误返回NULL。
头⽂件:<string>
说明:接收输⼊的字符串,没有上限,但是要保证buffer⾜够⼤,以换⾏结束,并将换⾏符转化为'\0'。
⽤例:
  #include<iostream>
  #include<string>
  using namespace std;
  int main()
  {
    char ch[10];
    gets(ch);
    cout<<ch<<endl;
    return0;
  }
  输⼊:abcdefg回车
  输出:abcdefg
5.getchar()函数
原型:int getchar(void);
返回值:读取成功返回⽤户输⼊的ASCII码,读取失败返回EOF.头⽂件:<string>或者<stdio.h>
说明:接收⼀个字符的输⼊,包含空格,遇到换⾏符结束。
  #include<iostream>
  #include<string>
  using namespace std;
  int main()
  {
    char ch;
    ch = getchar();
    cout<<ch<<endl;
    return0;
  }
  输⼊:abc回车
  输出:a

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。