1. 转化说明符

%a(%A)浮点数,十六进制数字和p-(P-)表示法(C99)%c个字符

%d个有符号十进制整数

%f浮点数(包括浮点数和doulbe)%e(%E)浮点指数输出[e-(E-)表示法]%g(%G)浮点数不显示无意义的零“ 0”“

%i有符号十进制整数(与%d相同)%u无符号十进制整数

%o八进制整数,例如0123

%x(%X)十六进制整数0f(0F)例如0x1234%p指针%s字符串%%“%”

2. 徽标

左对齐: “-”,例如“%-20s”右对齐: “ +”,例如“%+ 20s”

空格: 如果符号为正,则将显示一个空格,如果符号为负,则将显示“-”,例如“%6.2f”. #: 对c,s,d,u类无效;对于o类,在输出时添加前缀o;对于x类,将0x添加到输出中;

对于e,g,f类型,仅当结果为小数时才给出小数点.

3. 格式字符串(格式)

[标记] [最小输出宽度] [. [精度] [长度]类型“%-md”: 左对齐,如果m小于实际值,则输出为实际值.

“%m.ns”: 输出m位,从左侧开始输入字符串n位,当n> m或m省略时,在左侧填充空格m = n

例如“%7.2s”输入中国

输出“ CH”“%m.nf”: 输出浮点数,m为宽度,n为小数点右边

例如“%3.1f”输入3852.99

输出3853.0长度: h为短整形量,l为长整形量

printf格式控件的完整格式: %-0 m.n l或h格式字符

以下是格式说明的每个组成部分的说明:

①%: 表示格式描述的开始符号,必不可少.

②-: 是-表示左对齐输出,如果省略,则表示右对齐输出. ③0: 0表示指定的槽位已填充0,如果省略,则表示指定槽位未填充.

④m.n: m表示字段宽度,即相应的输出项在输出设备上占据的字符数. N代表准确性. 用于描述输出实数的小数位数. 指定n时,隐含的精度为n = 6位数字.

⑤l或h: l整数类型是long类型,实数类型是double类型. h用于将整数类型的格式字符修改为短型.

scanf函数称为格式输入函数,即,数据以用户指定的格式从键盘输入到指定的变量中.

scanf函数是标准库函数c语言中printf输出格式,其函数原型位于头文件“ stdio.h”中. 与printf函数一样,C语言也允许在使用scanf函数之前不包括stdio.h文件. scanf函数的一般形式为:

scanf(“格式控制字符串”,地址表列);

其中,格式控制字符串具有与printf函数相同的功能,但是它无法显示非格式字符串,即无法显示提示字符串. 每个变量的地址在地址表列中给出. 地址由地址运算符“&”和变量名组成.

例如: &a,&b分别代表变量a和变量b的地址.

此地址是编译系统分配给内存中变量a和b的地址. 在C语言中,使用了地址的概念,这与其他语言不同. 应该区分变量值和变量地址这两个不同的概念. 变量的地址由C编译器系统分配,用户无需关心特定的地址.

格式字符串格式字符串的一般格式为:

%[*] [输入数据宽度] [长度]类型

带有方括号[]的项目是可选的. 每个项目的含义如下.

1)类型

表示输入数据的类型,其格式字符和含义如下表所示.

设置字符含义

d输入一个十进制整数

o输入八进制整数

x输入十六进制整数

u输入无符号十进制整数

f或e输入实数(十进制或指数形式)

c输入一个字符

输入字符串

2)“ *”符号

用于指示输入项目. 读入后,未分配相应的变量,即跳过输入值. 如:

scanf("%d %*d %d",&a,&b);

scanf("%d %*d %d",&a,&b);

当输入为: 123时,将1分配给a,跳过2,将3分配给b.

3)宽度

使用十进制整数指定输入宽度(即字符数). 例如:

scanf("%5d",&a);

scanf("%5d",&a);

输入12345678仅会将12345分配给变量a,其余部分将被截断.

另一个例子:

scanf("%4d%4d",&a,&b);

scanf("%4d%4d",&a,&b);

输入12345678会将1234分配给a,将5678分配给b.

4)长度

长度格式字符为l和h,l表示输入长整数数据(例如%ld)和双精度浮点数(例如%lf). h表示输入短整数数据.

使用scanf函数时,还必须注意以下几点:

scanf函数中没有精确控制,

例如: scanf(“%5.2f”,&a);是非法的. 您不能使用此语句输入带两位小数的实数.

在scanf中需要变量地址. 如果指定了变量名,则会发生错误.

如果scanf(“%d”,a);是非法的,应将其更改为scnaf(“%d”,&a);合法.

输入多个数值数据时,如果格式控制字符串中没有非格式字符作为输入数据之间的间隔,则可以使用空格,TAB或回车作为间隔. 当C编译器遇到空格,TAB,回车或非法数据时(例如,当为“%d”输入“ 12A”时,A是非法数据),则认为数据已结束.

输入字符数据时,如果格式控制字符串中没有非格式字符,则所有输入的字符均视为有效字符.

示例:

scanf("%c%c%c",&a,&b,&c);

scanf("%c%c%c",&a,&b,&c);

输入d,e和f,将d分配给a,将d分配给b,将e分配给c. 仅当输入为def时,才能将“ d”分配给a,将“ e”分配给b,将“ f”分配给c.

如果在格式控件中添加空格作为空格,例如:

scanf("%c %c %c",&a,&b,&c);

scanf ("%c %c %c",&a,&b,&c);

输入时,可以在每个数据之间添加空格.

示例;

#include

intmain(void){

chara,b;

printf("input character a,b\n");

scanf("%c%c",&a,&b);

printf("%c%c\n",a,b);

return0;

}

#include

int main(void)

{

char a,b;

printf("input character a,b\n");

scanf("%c%c",&a,&b);

printf("%c%c\n",a,b);

return 0;

}

因为scanf函数“%c%c”中没有空格,所以输入MN,结果输出仅为M. 当输入更改为MN时,可以输出MN的两个字符.

示例

#include

intmain(void){

chara,b;

printf("input character a,b\n");

scanf("%c %c",&a,&b);

printf("\n%c%c\n",a,b);

return0;

}

#include

int main(void)

{

char a,b;

printf("input character a,b\n");

scanf("%c %c",&a,&b);

printf("\n%c%c\n",a,b);

return 0;

}

此示例表明,当scanf格式控制字符串“%c%c”之间存在空格时,输入数据之间可能存在空格.

5)如果格式控制字符串中包含非格式字符,则在输入时还必须输入非格式字符.

示例:

scanf("%d,%d,%d",&a,&b,&c);

scanf("%d,%d,%d",&a,&b,&c);

非格式字符“,”用作间隔字符,因此输入应为: 5、6、7. 另一个例子:

scanf("a=%d,b=%d,c=%d",&a,&b,&c);

scanf("a=%d,b=%d,c=%d",&a,&b,&c);

输入应为: a = 5,b = 6,c = 7.

6)如果输入数据和输出类型不一致,尽管编译可以通过c语言中printf输出格式,但结果将不正确.

示例

#include

intmain(void){

inta;

printf("input a number\n");

scanf("%d",&a);

printf("%ld",a);

return0;

}

#include

int main(void)

{

int a;

printf("input a number\n");

scanf("%d",&a);

printf("%ld",a);

return 0;

}

由于输入数据类型为整数,并且输出语句的格式字符串被描述为长整数,因此输出结果与输入数据不匹配. 如果更改步骤如下

示例

#include

intmain(void){

longa;

printf("input a long integer\n");

scanf("%ld",&a);

printf("%ld",a);

return0;

}

#include

int main(void)

{

long a;

printf("input a long integer\n");

scanf("%ld",&a);

printf("%ld",a);

return 0;

}

运行结果为:

inputalonginteger

1234567890

1234567890

将输入数据更改为长整数类型时,输入和输出数据相等.

示例

#include

intmain(void){

chara,b,c;

printf("input character a,b,c\n");

scanf("%c %c %c",&a,&b,&c);

printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);

return0;

}

#include

int main(void)

{

char a,b,c;

printf("input character a,b,c\n");

scanf("%c %c %c",&a,&b,&c);

printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);

return 0;

}

输入三个小写字母并输出其ASCII码和相应的大写字母.

示例

#include

intmain(void){

inta;

longb;

floatf;

doubled;

charc;

printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));

return0;

}

#include

int main(void)

{

int a;

long b;

float f;

double d;

char c;

printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));

return 0;

}

输出各种数据类型的字节长度.

本文来自“ 10910765”博客,请保留此源

C语言scanf输入格式printf输出格式

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/ruanjian/article-176833-1.html

C语言scanf怎么输入字母,C语言scanf输入格式printf输出格式相关推荐

  1. C语言中使用‘scanf’输入与‘printf’输出的几个例子

    C语言中使用'scanf'输入与'printf'输出格式及几个程序举例 初学者最常使用的就是键盘输入(scanf)和输出(printf) scanf的调用格式为: #include<stdio. ...

  2. c语言怎么用scanf输入字母,c语言输入字符串(c语言怎么用scanf输入字符串)

    但是实际操作发现我的字符串无论输入的多长多短,都是输入的什么输出的就. 在C语言中,输入输出字符串有以下两种方式:1 用scanf/printf输入输出.scanf/printf是C语言的格式化输入输 ...

  3. c语言switch scanf语句,C语言中scanf函数与switch语句

    ----------------switch---------------- 1)使用格式 switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; ... c ...

  4. C语言学习笔记-----scanf【通过键盘将数据输入到变量中】(两种用法)

    C语言学习笔记-----scanf[通过键盘将数据输入到变量中](两种用法) 用法一:scanf("输入控制符",输入参数): 功能: 将从键盘输入的字符转化为输入控制符所规定格式 ...

  5. c语言scanf返回值被忽略,scanf返回值问题

    在家养病,闲着没事看C primer plus,看到书中对于scanf输入的判断,常用如下方法: 此时它将返回1视为我输入成功,如果不为1则视为输入失败.那到底scanf的返回值具体指的是什么呢? 例 ...

  6. c语言scanf运行出现吃回车,scanf读取回车

    c语言 scanf 和 读取回车 我想用scanf读文件( program scanf()能把回车键读进去吗?数组能赋予回车值吗? //可以读入回车符,也可以给数组赋值 //具体看下例 #includ ...

  7. c语言scanf函数作用,C语言scanf函数应用问题解答

    C语言scanf函数应用问题解答 C语言的输入是由系统提供的库函数完成的.scanf函数是C语言中最常用且功能最强的输入函数,但该函数如使用不慎,就会出现错误或得不到预想的结果.以下结果都是基于VC+ ...

  8. [C语言] scanf 函数详解多组输入法和gitee 自荐

    自荐 gitee>>> C语言学习练习: C语言学习练习 上面是我的gitee C语言仓库链接,欢迎大家来看看我写的代码.!(◦˘ ³(♡ŐωŐ♡)(给大家推荐gitee(码云)这个 ...

  9. c语言多组输入字符,关于c语言中 scanf 对多行字符的输入问题

    如果想直接看解决办法,直接点击目录中的结果处 文章目录 前言: 问题: 原因: 尝试改进: 新问题: 原因: 最后解决办法: 思路: 结果 前言: 我想大家在做一些PTA题的时候,有的时候需要输入多行 ...

最新文章

  1. 生产中NFS案例记录---写入权限解决过程
  2. 用指针和函数的方法完成两个数的交换
  3. maven快照版本和发布版本
  4. 传入一个MapString,Long 返回它按value排序后的结果
  5. Hbase JMX 监控 - Region
  6. 阿里云发布“码上公益”平台 打造更高效透明的“科技公益”
  7. 对极大似然估计的理解
  8. Writing udev rules
  9. PyQt5+VTK环境搭建
  10. 学习笔记——meta analysis
  11. Linux 音频系统简析
  12. 计算机鼠标双击怎么,鼠标双击变成属性怎么办 鼠标双击变成属性解决办法【详解】...
  13. 一位过来人:也谈谈体制内 • 体制外
  14. 《一往无前》10岁的小米,给世界讲了一个怎样的故事?
  15. 「自动控制元件与线路」3 异步电动机及其控制
  16. homeassistant mysql_学习笔记 篇三:HomeAssistant学习笔记docker安装的ha更换数据库
  17. Huffman编码、Shannon编码、Fano编码——《小王子》文本压缩与解压
  18. 【杂乱的生活】如果IT界拉高了房价 该怨谁?
  19. iPhone游戏编程实例:分享成功游戏开发人员的锦囊妙计
  20. FastASR离线语音识别库

热门文章

  1. 基于C语言和easyx实现的巧虎划船大冒险游戏
  2. 基于springboot + vue 的个人博客搭建过程(续)
  3. 求与下面谓词公式等值的前束范式_谓词公式x(p(x)yr(y))q(x)中量词x的作用域是()...
  4. List学习笔记——每天一个Java小常识
  5. WPA2破解教程(详细步骤)
  6. Loadruner工具之 IP欺骗
  7. 6 图助你理解 SQL 优化策略
  8. FileSystemObject 的疑惑
  9. 搭建文件服务器 MinIO
  10. 《转自天涯一篇文章》淡出IT投身传统行业,寻求前辈帮助