当前位置: 代码迷 >> 综合 >> 常用输入输出函数及其用法:cin函数,getchar()函数,putchar函数,gets_s()函数等
  详细解决方案

常用输入输出函数及其用法:cin函数,getchar()函数,putchar函数,gets_s()函数等

热度:52   发布时间:2023-12-29 06:18:15.0

一、字符、字符串

  • 字符
    单个字符用char来定义
  • 字符串
    ① 字符串用char a[]来定义一个字符数组,在字符数组的后面要有一个字符串结束符‘\0’来表示字符串的结束
    ②用string s 来定义一个字符串

二、常见输入输出函数

  • 1、scanf()/printf()函数
  • 输入/输出函数
  • scanf()在输入字符串时,不读入空格和回车,在读入空格和回车时,输入结束
  • printf()在输出时遇到第一个‘\0’结束
#include<iostream>
using namespace std;
int main(){
    int a,b;scanf("%d","%d",&a,&b);printf("%d","%d",a,b);char str[15];scanf("%s",&str);
}
  • 2、getchar(),
  • 是一个输入流函数,它是把输入的字符以队列的形式放入缓冲区,包含输入的空格,直到用户按回车为止
  • 常用来消除回车符的影响
  • 3、putchar()函数
  • 是向终端输出一个字符,参数必须是一个字符
char c;
c=getchar();//输入一个字符
putchar(c);//输出一个字符
  • 4、cin>>

  • 当我们从键盘输入时,有一个缓冲区,当输入结束时会将输入的数据存到缓冲区。而cin>>就是从缓冲区中将数据读取出来

  • cin>>遇到空格、换行时读取结束

//输入数字
int a ,b;
cin>>a>>b;
//输入一个字符串,遇到空格结束
//如输入hello world,则输出结果为hello
char a[20];
cin>>a;
string s;
cin>>s;
  • 5、cout<<
    输出
  • 6、gets_s()
  • 接收输入的字符串,直到换行符结束,但换行符会被丢弃,末尾加‘\0’
	char ch[20];gets_s(ch);cout << ch;

注意:

#include<iostream>
int main(){
    int n;cin>>n;getchar();//需要加一个getchar()函数吸收掉缓冲区中的换行符char ch[10];gets_s(ch);cout<<ch;
}
  • 7、gets()函数
    输入一行字符串,可以输入空格,遇到回车结束输入,换行符会被丢弃
char c[5];
gets(c);
  • 8、getline()函数
    该函数用来完成读入一行字符串,可读入空格,遇到回车结束输入
    使用该函数要在头文件中加上 #include< string >
string str;
getline(cin,str);

三、输入输出格式的控制

1、scanf()、printf()

  • 输入特定格式的值如:输入年–月--日,(2020–04–01)
int year,month,day;
scanf("%d--%d--%d",&year,&month,&day);
printf("%d %d %d\n",year,month,day);//可以直接输出来
  • 输出进制转换
int a=10;
printf("%x\n",a);//小写十六进制输出,输出为a
printf("%X\n",a);//大写十六进制输出,输出为A
printf("%o\n",a);//八进制输出 输出为12 
  • 输出增加前置0
int a=5;
printf("%02d\n",a);//2代表宽度,不足的地方用0补充 即输出为05
printf("%04d\n",a)//输出为0005
  • 输出保留小数
	double a=5.1;printf("%.2lf\n",a);//输出为5.10

2、cout<<输出格式的控制

  • 输出进制转换
int num=10;
cout<<hex<<num<<endl;//以十六进制输出 a
cout<<oct<<num<<endl;//以八进制输出 12
cout<<dec<<num<<endl;//更改了数值的输出格式后,要记得使用 cout << dec 进输出改成默认的十进制输出
cout<<(bitset<8>)num<<endl;//输出二进制 00001010 要包含头文件<bitset>
  • 输出保留两位小数
double a=5.1;
cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;//头文件中要包含<iomanip>
  • 输出的字符宽度为2,且左对齐
int a=123;
cout<<stew(5)<<a<<endl;//默认即右对齐 输出为 123(左边两个空格)
cout<<setiosflags(ios::left)<<setw(4)<<a<<endl;//设置左对齐