scanf和printf是c语言的输出函数,两者有什么区别?

电脑杂谈  发布时间:2020-06-16 13:29:08  来源:网络整理

scanf输出格式_printf输出二进制格式_html 原格式输出

首先,scanf函数的一般形式

2113scanf函数5261是标准库函数. 其函数原型在标头4102文件“ stdio.h”中,该文件与printf函数相同. C语言1653还允许在使用scanf函数之前不包括stdio.h文件. scanf函数的一般形式是: scanf(“格式控制字符串”,地址表列);其中,格式控制字符串具有与printf函数相同的功能,但不能显示非格式字符串,即不能显示提示字符串. 每个变量的地址在地址表列中给出. 地址由地址运算符“&”和变量名组成. 例如,&a,&b分别代表变量a和变量b的地址. 该地址是编译系统分配给内存中a和b变量的地址. 在C语言中,使用了地址的概念,这与其他语言不同. 应该区分变量值和变量地址这两个不同的概念. 变量的地址由C编译器系统分配,用户无需关心特定的地址.

变量的地址和变量的值之间的关系如下: &a ---> a567 a是变量名,567是变量的值,&a是变量a的地址. 在赋值表达式中为变量赋值,例如: a = 567在赋值号的左边是变量名,您不能写地址,而scanf函数实际上也是在给变量赋值,但需要变量的地址,例如&a. 两者的形式不同. &是一个地址获取运算符,&a是一个表达式,其功能是查找变量的地址.

void main(){

int a,b,c;

printf(“ input a,b,c”);

scanf(“%d%d%d”,&a,&b,&c);

printf(“ a =%d,b =%d,c =%d”,a,b,c);

}

注意和用法!

在此示例中,由于scanf函数本身无法显示提示字符串,因此首先使用printf语句在屏幕上输出提示,然后要求用户输入a,b和c的值. 执行scanf语句,然后退出TC屏幕以进入用户屏幕并等待用户输入. 用户输入7、8和9,然后按Enter键. 此时,系统将返回TC屏幕. 在scanf语句的格式字符串中,“%d%d%d”之间用于输入的非格式字符之间没有间隔,因此在输入间隔时,每两个输入数字之间应使用一个以上的空格或Enter键.

例如: 7 8 9

或

7

8

9

格式化字符串

格式字符串的一般形式为: %[*] [输入数据宽度] [长度]类型带方括号[]的项目是可选的. 每个项目的含义如下:

1. 输入

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

设置字符含义

d输入一个十进制整数

o输入八进制整数

x输入十六进制整数

u输入无符号十进制整数

scanf输出格式_printf输出二进制格式_html 原格式输出

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

c输入一个字符

输入字符串

2. “ *”符号

用于指示读入输入项后未分配相应的变量,即跳过输入值. 例如scanf输出格式,scanf(“%d%* d%d”,&a,&b);当输入为: 1 2 3时,将1分配给a,跳过2,将3分配给b.

3. 宽度

使用十进制整数指定输入宽度(即字符数). 例如: scanf(“%5d”,&a);

输入:

12345678

仅将12345分配给变量a,其余部分将被截断. 另一个示例: scanf(“%4d%4d”,&a,&b);

输入:

12345678将1234分配给a,将5678分配给b.

4. 长度

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

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

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

b. 在scanf中需要变量地址. 如果给出了变量名,将发生错误. 如果scanf(“%d”,a);是非法的,应将其更改为scnaf(“%d”,&a);合法.

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

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

scanf(“%c%c%c”,&a,&b,&c);

输入为:

d e f

将“ d”分配给a,将“ f”分配给b,将“ e”分配给c. 仅当输入为:

def

何时

scanf输出格式_html 原格式输出_printf输出二进制格式

,您可以将d分配给a,将e分配给b,将f分配给c. 如果在格式控件中添加空格作为间隔,例如scanf(“%c%c%c”,&a,&b,&c);,则可以在输入时在每个数据之间添加空格.

void main(){

char a,b;

printf(“输入字符a,b”);

scanf(“%c%c”,&a,&b);

printf(“%c%c”,a,b);

}

scanf(“'C14F14%c%c”scanf输出格式,&a,&b);

printf(“%c%c”,a,b);

由于scanf函数“%c%c”中没有空格,因此输入MN,结果将仅为M.

将输入更改为MN时,可以输出MN的两个字符,请参见以下输入操作:

输入字符a,b

MN

MN

void main(){

char a,b;

printf(“输入字符a,b”);

scanf(“%c%c”,&a,&b);

printf(“%c%c”,a,b);

}

scanf(“%c%c”,&a,&b);

此示例表明,当scanf格式控制字符串“%c%c”之间存在空格时,输入数据之间可能存在空格. e. 如果格式控制字符串中包含非格式字符,则在输入时还必须输入非格式字符.

例如:

scanf(“%d,%d,%d”,&a,&b,&c);其中非格式字符“,”用作间隔字符,因此输入应为: 5,6,7

另一个示例: scanf(“ a =%d,b =%d,c =%d”,&a,&b,&c);

printf输出二进制格式_html 原格式输出_scanf输出格式

输入应为

a = 5,b = 6,c = 7g. 如果输入数据和输出类型不一致,尽管编译可以通过,但结果将不正确.

void main(){

int a;

printf(“输入数字”);

scanf(“%d”,&a);

printf(“%ld”,a);

}

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

void main(){

long a;

printf(“输入一个长整数”);

scanf(“%ld”,&a);

printf(“%ld”,a);

}

运行结果为:

输入一个长整数

1234567890

1234567890当输入数据更改为长整数时,输入和输出数据相等.

键盘输入功能

getchar函数getchar函数的功能是从键盘输入字符. 通用形式为: getchar();通常,将输入字符分配给字符变量以形成分配语句,例如:

字符c;

c = getchar();#include

void main(){

字符c;

scanf输出格式_html 原格式输出_printf输出二进制格式

printf(“输入字符”);

c = getchar();

putchar(c);

}

使用getchar函数时应注意几个问题:

1. getchar函数只能接受单个字符,并且输入数字也被视为字符. 输入多个字符时,仅接受第一个字符.

2. 使用此功能之前,必须包含文件“ stdio.h”.

3. 在TC屏幕下运行包含此功能的程序时,它将退出TC屏幕并进入用户屏幕以等待用户输入. 输入后,返回TC屏幕.

void main(){

char a,b,c;

printf(“输入字符a,b,c”);

scanf(“%c%c%c”,&a,&b,&c);

printf(“%d,%d,%d%c,%c,%c”,a,b,c,a-32,b-32,c-32);

}

输入三个小写字母

输出其ASCII码和相应的大写字母.

void main(){

int a;

长b;

f浮动;

双d;

字符c;

printf(“%d,%d,%d,%d,%d”,sizeof(a),sizeof(b),sizeof(f)

,sizeof(d),sizeof(c));

}

输出各种数据类型的字节长度. 其次,在printf printf的格式控制中,宽度是指输出数据应占据多少个网格,而不是数据本身就是多少个网格,例如,我可以将单个数字1设置为占据20个网格. 当然,如果设置的宽度大于如果要输出的数字的实际宽度较小,则它将毫无用处. 例如,12345,如果将宽度设置为4,则仍将输出12345. 例如,-3.2e + 03的宽度为8,大于6. 在这种情况下,将输出数据不管宽度如何.

对于-3.2或-3.22,在我的计算机上运行的结果是3.22,根据我读过的书中的解释,它应该是3.22. 我只能认为TC 2.0的作者对标准不是很好理解,因此该错误已在TC 3.0中修复.

最后,据我所知,%e以科学计数法输出,科学计数法规定数字的标准形式是整数的数目仅为1位. 因此,要控制位数的想法是不可能的.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-247388-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...