当前位置: 首页> 房产> 政策 > 中国核工业二三建设有限公司怎么样_高端网站开发环境_微信管理软件哪个最好_蜗牛精灵seo

中国核工业二三建设有限公司怎么样_高端网站开发环境_微信管理软件哪个最好_蜗牛精灵seo

时间:2025/8/8 17:13:43来源:https://blog.csdn.net/2401_86861045/article/details/144272000 浏览次数:0次
中国核工业二三建设有限公司怎么样_高端网站开发环境_微信管理软件哪个最好_蜗牛精灵seo

一、getchar 和 putchar

getchar() 和 putchar() 是属于 C 语言的库函数,C++是兼容 C 语言的,所以 C++ 中只要正确包含头文件就可以正常使用这两个函数。(C语言:<stdio.h> C++:<cstdio>)

1、getchar()

函数原型:int getchar ( void );

getchar () 函数返回用户从键盘输入的一个字符,使用时不带有任何参数
程序运行到这个命令的时候会暂停,等待用户从键盘输入,等同于使用 cin 或 scanf () 方法读取一个字符。
它的原型定义在头文件 <cstdio> 中。

getchar () 不会忽略起首的空白字符,总是返回当前读取的第一个字符,无论是否为空格。

如果读取失败,返回常量 EOF,由于 EOF 通常是 -1,所以返回值的类型要设为 int,而不是 char。( int 同时兼容成功读取和读取失败,而 char 则达不到这种效果)

如何让 getchar () 函数读取失败,返回 -1 呢?

答:只需要在输入字符之前,直接按下 Ctrl+z 就可以。

2、putchar()

函数原型:int putchar( int character );

putchar() 函数将它的参数字符输出到屏幕上,它的原型定义在头文件 <cstdio>中。

操作成功时, putchar() 返回输出的字符,否则,返回常量 EOF 。

二、printf 和 scanf

1、printf

函数原型:int printf ( const char * format, ... );

(1)基本用法

printf() 的作用是将参数文本输出到屏幕

它名字里面的 f 代表 format (格式化),表示可以定制输出文本的格式。

printf() 不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行。 为了让光标移到下⼀行的开头,可以在输出文本的结尾,添加⼀个换行符 \n 。

如果文本内部有换行,也是通过插入换行符来实现,如下:

(2)占位符

printf() 可以在输出文本中指定占位符。

所谓 “占位符”,就是这个位置可以用其他值代入。

上面示例中,I have %d dreams\n 是输出文本,里面的 %d 是占位符,表示这个位置要用其他值来替换。占位符的第一个字符⼀律为百分号 %第二个字符表示占位符的类型, %d 表示这里代入的值必须是一个整数。 printf() 的第二个参数就是替换占位符的值,上面的例子是整数 3 替换 %d 。执行后的输出结果就是 I have 3 dreams 。

常用的占位符除了 %d ,还有 %s ,它表示代入的是字符串。

上面示例中, %s 表示代入的是一个字符串,所以 printf() 的第二个参数就必须是字符串,这个例 子是 zhangsan 。执行后的输出就是 zhangsan have 3 dreams 。

输出文本里面可以使用多个占位符

上面示例中,输出文本%s have %d dreams\n 有两个占位符,第一个是字符串占位符 %s ,第二个是整数占位符 %d ,分别对应 printf() 的第二个参数( zhangsan )和第三个参数 ( 3 )。执行后的输出就是 zhangsan have 3 dreams 。

printf() 参数与占位符是一一对应关系,如果有 n 个占位符, printf() 的参数就应该有 n + 1 个。如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值

printf() 的占位符有许多种类,与数据类型相对应。下面是常用的占位符:

占位符介绍
%d十进制整数。
%lld十进制 long long int 类型。
%f小数(包含 float 类型和 double 类型)。
%Lflong double 类型浮点数。
%c字符。
%s字符串。
%a十六进制浮点数,字母输出为小写。
%A十六进制浮点数,字母输出为大写。
%e使用科学计数法的浮点数,指数部分的 e 为小写。
%E使用科学计数法的浮点数,指数部分的 E 为大写。
%i整数,基本等同于 % d。
%g6 个有效数字的浮点数。整数部分一旦超过 6 位,就会自动转为科学计数法,指数部分的 e 为小写。
%G等同于 % g,唯一的区别是指数部分的 E 为大写。
%hd十进制 short int 类型。
%ho八进制 short int 类型。
%hx十六进制 short int 类型。
%huunsigned short int 类型。
%ld十进制 long int 类型。
%lo八进制 long int 类型。
%lx十六进制 long int 类型。
%luunsigned long int 类型。
%llo八进制 long long int 类型。
%llx十六进制 long long int 类型。
%lluunsigned long long int 类型。
%Le科学计数法表示的 long double 类型浮点数。
%n已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量之中。
%o八进制整数。
%p指针,打印地址。
%u无符号整数(unsigned int)。
%x十六进制整数。
%zdsize_t 类型。
%%输出一个百分号。

(3)格式化输出

printf() 可以定制占位符的输出格式。

1)限定宽度

printf() 允许限定占位符的最小宽度

上面示例中, %5d 表示这个占位符的宽度至少为5位。如果不满5位,对应的值的前面会添加空格。 输出的值默认是右对齐,即输出内容前面会有空格;如果希望改成左对齐,即在输出内容后面添加空格,在占位符的 % 的后面插入⼀个 - 号即可。

对于小数,这个限定符会限定所有数字的最小显示宽度。(小数点也是占一位的)。

上面示例中, %10f 表示输出的浮点数最少要占据10位。由于小数的默认显示精度是小数点后6位,所以 1.23 输出结果的头部会添加2个空格。

如果希望改成左对齐,即在输出内容后面添加空格,同理,在占位符的 % 的后面插入⼀个 - 号即可。

注意:上面说的都是至少,如果数字本身的位数超过限定宽度,就正常打印。

2)限定小数位数

输出小数时,有时希望限定小数的位数。举例来说,希望小数点后面只保留两位,占位符可以写 成 %.2f 。

这种写法可以与限定宽度占位符,结合使用:

上面示例中, %6.2f 表示输出的数最小宽度为6,小数位数为2。

最小宽度和小数位数这两个限定值,都可以用 * 代替,通过 printf() 的参数传入。

上面示例中, %*.*f 的两个星号通过 printf() 的两个参数 6 和 2 传入。(注意一一对应)

2、scanf

函数原型:int scanf ( const char * format, ... );

(1)基本用法

scanf () 函数用于读取用户键盘的输入。
程序运行到 scanf () 这个语句时,会停下来,等待用户从键盘输入。用户输入数据、按下回车键后,scanf () 就会处理用户的输入,将其存入变量。

scanf () 的语法跟 printf () 类似。

特别注意,scanf函数的占位符后面一般不会加 \n , \n 是换行符,⼀般在输出的时候才使用

它的第一个参数是一个格式字符串,里面会放置占位符(与 printf () 的占位符基本一致),告诉编译器如何解读用户的输入,需要提取的数据是什么类型。scanf () 必须提前知道用户输入的数据类型,才能处理数据。它的其余参数是用来存放用户输入的变量的,格式字符串里面有多少个占位符,就有多少个变量。

注意:
scanf 函数中存储数据的变量前面必须加上 & 运算符(指针变量除外),因为 scanf () 需要的是地址,必须将变量 i 的地址取出来传给 scanf 函数。
如果这里的变量 i 是数组,那就不用加 & 运算符。

scanf 函数中指定的格式和给程序输入的数据格式要严格的匹配,否则可能不能得到想要的值。

scanf() 处理数值占位符时,会自动过滤空白字符,包括空格、制表符、换行符等。 所以,用户输入的数据之间,有一个或多个空格不会影响 scanf() 解读数据。另外,用户使用回车键,将输入分成几行,也不影响解读。

上面示例中,用户分成四行输入,得到的结果与一行输入是完全一样的。每次按下回车键以后,scanf () 就会开始解读,如果第一行匹配第一个占位符,那么下次按下回车键时,就会从第二个占位符开始解读。

scanf () 处理用户输入的原理:
用户的输入先放入缓存,等到按下回车键后,按照占位符对缓存进行解读。解读用户输入时,会从上一次解读遗留的第一个字符开始,直到读完缓存,或者遇到第一个不符合条件的字符为止。

(2)占位符

scanf() 常用的占位符如下,与 printf() 的占位符基本一致。

占位符介绍
%c字符。
%d整数。
%ffloat 类型浮点数。
%lfdouble 类型浮点数。
%Lflong double 类型浮点数。
%s字符串。
%[]在方括号中指定一组匹配的字符(比如 %[0-9]),遇到不在集合之中的字符时,匹配将会停止。

上面所有占位符之中,除了 %c 以外,都会自动忽略起首的空白字符%c 不忽略空白字符,总是返回当前第一个字符,无论该字符是否为空格。 如果要强制跳过字符前的空白字符,可以写成 scanf(" %c", &ch) ,即 %c 前加上一个空格,表示跳过零个或多个空白字符

了解这一点后,当 %c 和 %d 等占位符连续使用的时候,也要注意, %c 默认不会跳过空白字符的, 所以在输入的时候,要非常小心:

(3)scanf 的返回值

scanf() 的返回值是一个整数,表示成功读取的变量个数

如果没有读取任何项,或者匹配失败,则返回 0 。

如果在成功读取任何数据之前,发生了读取错误或者遇到读取到文件结尾,则返回常量 EOF(-1)。

三、cin 和 cout

cin 是 C++ 中提供的标准输入流对象,一般针对的是键盘,也就是从键盘上输入的字符流,使用 cin 来进行数据的提取。cin 一般是和 >> (流提取运算符) 配合使用的。cin 的功能和 scanf 的功能是类似的。

cout 是 C++ 中提供的标准输出流对象,一般针对的是控制台的窗口,也就是将数据以字符流的形式输出到控制台窗口上显示。cout 一般是和 << (流插入运算符) 配合使用的。cout 的功能和 printf 的功能是类似的。

cin 和 cout 的输入和输出非常方便,不需要手动控制格式,能够自动识别变量类型

注意:我们在写程序的时候,经常需要处理数据,不管什么类型的数据都是以字符流的形式输入和输出的,也就是不管在键盘上输入什么类型的数据,还是将程序中的各种类型的数据输出显示到控制台屏幕上,都是以字符流的形式处理的。

1、基本用法

当我们在键盘输入数据的时候,输入的数据不能被 cin 解读为对应类型的数据,那么读取也就结束 了。

cin 使用细节:
(1)cin 在读取的时候是根据用户的输入,从前往后从上往下依次扫描的;
(2)cin 在读取的过程中遇到空格、换行符、制表符等空白字符,自动会跳过,所以不用担心在想要的字符前输入空白字符会影响读取。当一行读取结束的时候,会自动换行,读取下一行的内容;
(3)cin 后面不可以跟换行 endl

2、连续输入输出

在上面的代码中,使用 cout 进行变量的输出,实质上是将变量插入到 cout 的对象里,并以 cout 对象作为返回值返回,因此我们还可以用 << 在后面连续输出多个内容,通过连续输入输出的方式对代码进行编写,效果如下:

cin连续输入举例:

cout 连续输出举例:

cin 的好处:

当输入若干个变量(数据量很少)的时候,我们就可以通过 >> 把所有的数据用一行代码完成接收,而且无需关心数据的类型,和 scanf 函数比起来代码的书写就非常简洁明了。

cout 的好处:
cout 可以用来连续输出多个数值,而且无需考虑数值的类型,因为它本身会做类型处理,和 printf 比起来比较方便简洁。

3、cout 的格式输出

cout 结合 <iomanip> (IO manipulators)头文件中的操纵符,可以灵活控制输出格式,从而满足各种格式化需求。

(1)控制宽度和填充

setw :设置字段宽度(只对紧接着的输出项有效)。

setfill :设置填充字符。

(2)控制数值格式

fixed:以固定小数点方式表示浮点数,设置后就不会以科学计数法方式展示了。
scientific:以科学计数法方式表示浮点数。
setprecision:设置浮点数的精度,以控制小数点后的数字位数,一般先固定小数点,再设置精度

(3)控制整数格式

dec:以十进制格式显示整数(默认)。
hex:以十六进制格式显示整数。
oct:以八进制格式显示整数。

(4)控制对齐方式

left对齐。

right对齐(默认)。

关键字:中国核工业二三建设有限公司怎么样_高端网站开发环境_微信管理软件哪个最好_蜗牛精灵seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: