当前位置: 首页 > news >正文

关于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++中输入字符串的几种方法 - CSDN App】https://blog.csdn.net/u011486738/article/details/82082405?sharetype=blog&shareId=82082405&sharerefer=APP&sharesource=2302_76596737&sharefrom=link

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

相关文章:

  • MySQL 8 C++ 源码解析:EXPLAIN 实现机制
  • 【嵌入式】MQTT
  • 深入探索DeepSeek开源之旅:开源Week全程解析
  • RHCE9.0版本笔记3:创建、查看和编辑文本文件
  • Qt QMenu 使用详解
  • AI+ERP:智能时代的双刃剑,从技术狂欢到价值落地的长征-亿发
  • 【前端场景题】如何应对页面请求接口的大规模并发问题
  • 【AI深度学习基础】Pandas完全指南入门篇:数据处理的瑞士军刀 (含完整代码)
  • 一个大型应用的云原生一般有多少个服务?
  • QT study DAY2
  • 【Qt QML】定时器(Timer)
  • DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!
  • 下载b站视频音频
  • Linux 的at定时任务
  • 【Python 数据结构 2.时间复杂度和空间复杂度】
  • doOnNext() vs flatMap():区别与适用场景
  • 如何使用go本地编译caddy插件
  • JQuery学习笔记,点击按钮加载更多的图片
  • C++入门基础知识1
  • 零基础学习Python之循环详解:从入门到实践_我的学习Python记录11
  • 外贸网站的公司介绍/小红书seo软件
  • 沈阳网站前端/百度做广告多少钱
  • 展馆设计收费标准/百度搜索优化关键词排名
  • 做网站开发学什么语言好/微信推广平台哪里找
  • 做模板网站的公司/中和seo公司
  • 东京热 在线A视频网站一级做爰片/营销软文范文