C/C++标准输入输出格式控制 您所在的位置:网站首页 c语言输入的值怎么规定范围 C/C++标准输入输出格式控制

C/C++标准输入输出格式控制

2024-07-16 16:48| 来源: 网络整理| 查看: 265

1、c语言输入输出格式控制

(1)输入格式控制–scanf() 语法:

#include int scanf( const char *format, ... );

scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. 它和printf()有点类似. format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始,如下:

控制字符说明%c一个单一的字符%d一个十进制整数%i一个整数%e, %f, %g一个浮点数%o一个八进制数%s一个字符串%x一个十六进制数%p一个指针%n一个等于读取字符数量的整数%u一个无符号整数%[]一个字符集%%一个精度符号

scanf()读取匹配format(格式)字符串的输入. 当读取到一个控制字符, 它把值放置到下一个变量. 空白(tabs, 空格等等)会跳过. 非空白字符和输入匹配, 然后丢弃. 如果是一个在%符号和控制符间的数量, 那么只有指定数量的字符转换到变量中. 如果scanf()遇到一个字符集(用%[]控制字符表示), 那么在括号中的任意字符都会读取到变量中. scanf()的返回值是成功赋值的变量数量, 发生错误时返回EOF. 一些简单的测试数据:

#include int main () { int a; char c; char str[100]; scanf("%d",&a); //输入整数a printf("%d\n",a); //输出整数a //清空缓存区,主要清除换行的影响,防止下一个输入会接收换行符 fflush(stdin); scanf("%c",&c); //输入字符c printf("%c\n",c); //输出字符c fflush(stdin); scanf("%s",str); //输入字符串str printf("%s",str); } #include int main () { int a; char c; char str[100]; scanf("%d%c%s",&a,&c,str); //这里c会接收一个回车字符 或者空格,根据输入形式决定 scanf("%s",s); printf("%d %d %s\n",a,c,str); printf("%s",s); }

总之用scanf()接收字符问题很多… 这里有一个详细介绍scanf函数及其常见问题的博客,参考一下。 (2)输出格式控制–printf() 语法:

#include int printf( const char *format, ... );

printf()函数根据format(格式)给出的格式打印输出到STDOUT(标准输出)和其它参数中.

字符串format(格式)由两类项目组成 - 显示到屏幕上的字符和定义printf()显示的其它参数. 基本上, 你可以指定一个包含文本在内的format(格式)字符串,也可以是映射到printf()其它参数的”特殊”字符. 例如本代码

char name[20] = "Bob"; int age = 21; printf( "Hello %s, you are %d years old\n", name, age ); Code格式%c字符%d带符号整数%i带符号整数%e科学计数法, 使用小写”e”%E科学计数法, 使用大写”E”%f浮点数%g使用%e或%f中较短的一个%G使用%E或%f中较短的一个%o八进制%s一串字符%u无符号整数%x无符号十六进制数, 用小写字母%X无符号十六进制数, 用大写字母%p一个指针%n参数应该是一个指向一个整数的指针指向的是字符数放置的位置%%一个’%’符号

对于浮点数精度控制也相比c++更为方便

#include using namespace std; int main () { double a=3.141592654; printf("%.4f",a); //输出小数点后4位 return 0; } /* 结果: 3.1416 */

这个printf相比,若cout输出比较大的double数,会用科学计数法显示。

#include using namespace std; int main () { double x=48787844545.265989; couta>>c>>str; cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有