关于C/C++的输入和输出

目录

一、C语言中的scanf

有关scanf()的例子

二、C语言中的printf

有关printf()的例子 

三、C++中的cin、cout

四、字符的输入

1、cin.get()

2、cin.get()

3、cin.getline()

4、getline()

5、getchar()

五、string类型字符串长度

1、length()

2、size()


一、C语言中的scanf

scanf 格式:%[width][modifiers]type

其中width为指定当前读取操作中读取的最大字符数

type为字符类型,常见的有如下所示:

转换字符参数类型含义
dint*十进制有符号整数
ffloat*浮点型字面值常量
cchar*读取单个字符。如果给出宽度,就读取给定数目的字符

注:scanf()在处理数值位占符时,会自动过滤空白字符,包括空格、制表符、换行符等。

有关scanf()的例子

int a=0;
float b=0;
scanf("%d%f",&a,&b);
int n=0;
scanf("%3d",&n)
//如果在终端输入1234,scanf只能读取3个字符,所以最终输出结果为123

二、C语言中的printf

printf 格式:%[flags][width][.precision][modifiers]type

其中.precision为精度,通过点号分隔字段的宽度和精度

  • 对于字符串,它指定打印的字符的最大个数
  • 对于整数,它指定打印的数字的最小位数
  • 对于转换字符为e、E或f,它指定小数点后打印的数字位数 

type的常见类型如下:

转换字符参数类型含义
d、iint参数作为有符号十进制整数打印
fdouble参数按照常规的浮点数形式打印。小数点后面的位数是由精度字段决定,默认是6
cchar参数被裁剪为unsigned char类型并作为字符打印
schar*打印一个字符串

有关printf()的例子 

//小数的默认精度是小数点的后六位
printf("%9f\n",1.234);  //输出结果为1.234000
printf("%9f\n",100.234);  //输出结果为100.234000

printf("%.3f",1.2);  //输出结果为1.200
printf("%.4f",1.2);  //输出结果为1.2000
int a=0;
scanf("%d",&a);
printf("输出:%d\n",a);

三、C++中的cin、cout

在C++语言中依然可以使用scanf()和printf()来输入和输出,但需要加上头文件#include<stdio.h>

而使用cin和cout,需要加上头文件#include<iostream>

int a,b;
cin>>a>>b;
cout<<a+b<<endl;

输入:2【空格】3【回车】
输出:5
cin接受一个字符串,遇到“空格”、“Tab”、“回车”都会结束

char a[20];
cin>>a;
cout<<a<<endl;

输入:abcd
输出:abcd

输入:a b c d
输出:a

四、字符的输入

1、cin.get()

cin.get(字符变量名) 可以用来接收字符

char ch;
ch=cin.get();  //或者cin.get(ch);只能获取一个字符
cout<<ch<<endl;

输入:aaaa
输出:a

2、cin.get()

cin.get(字符数组名,接收字符数)用来接收一行字符串,可以接收空格

char a[20];
cin.get(a,20);  //中间可以用空格隔开
cout<<a<<endl;

输入:ee ee ee
输出:ee ee ee 

输入:asdfasdfasdfasdfasdfasdf  //输入了24个字符
输出:asdfasdfasdfasdfasd  //最后只能接受19个字符+1个'\0'(字符串结束字符标志)

3、cin.getline()

cin.getline(字符数组名,接收字符数,结束字符) 接收一个字符串,可以接收空格,其中第三个参数“结束字符”可省略不写,默认为'\n'。

char m[20];
cin.getline(m,5);
cout<<m<<endl;

输入;qweeeee
输出:qwee   //只接受四个字符+1个'\0'

输入:q qqeeq
输出:q qq   //其中空格算一个字符

当用在多维数组(如二维数组)中的时候,也可以用cin.getline(m[i],20) 来输入。

4、getline()

getline() 接受一个字符串,可以接收空格,但前提需加上头文件“#include <string>”

与cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流

string str;
getline(cin,str);
cout<<str<<endl;

5、getchar()

getchar() 接收一个字符,需包含“#include <string>”

char ch;
ch=getchar();  //不能写成getchar(ch);
cout<<ch<<endl;

输入:aa
输出:a

五、string类型字符串长度

1、length()

length() 函数是string的内置成员,用于返回string类型字符串的实际长度

string s="hello world!"
cout<<s.length()<<endl;

输出:12

2、size()

string s="hello world!"
cout<<s.size()<<endl;

输出:12

参考博客:

【C++中输入字符串的几种方法 - 优快云 App】https://blog.youkuaiyun.com/u011486738/article/details/82082405?sharetype=blog&shareId=82082405&sharerefer=APP&sharesource=2302_76596737&sharefrom=link

【C++中求string类型字符串长度的三种方法 - 优快云 App】https://blog.youkuaiyun.com/qq_43762434/article/details/132509049?sharetype=blog&shareId=132509049&sharerefer=APP&sharesource=2302_76596737&sharefrom=link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值