C语⾔中常⽤的六⼤输⼊输出函数
我们在使⽤C语⾔的时候碰的最多的就是输⼊输出的函数,你们是否还记得我们写的第⼀个程序hello world,从这个程序开始我们就开始使⽤输⼊输出的函数,⼀直到你的代码⽣涯的结束这个输⼊输出都还在你的⾝边。
或许有⼈会觉得这个输⼊输出不是很简单嘛?基本就是⽤它来输⼊⼀下数据输出⼀下数据不就好了,有什么可注意的?如果你这样想了,那你⼤错特错了,其实并⾮如此,很多⼯程的问题都是出现在输⼊输出的函数,使⽤的时候不知道他的原理,然后导致其代码出现BUG。那么接下来我就带着你去看看这些都是怎么⼀回事。
第⼀个函数:printf();
这是输出函数,要使⽤它,那么我们要先引⼊系统头⽂件–#include <stdio.h>。
我们先从他的功能说起,这个函数是将原有的数据,按⼀定的格式输出显⽰于控制台。也就是它能以⽤户控制下的各种预定指定格式输出数据。
再来看看它的函数原型:int printf(“control string”, argument list);
返回值:返回输出字符的数量,如果错误会返回EOF。
codesys编程教程函数的参数:有两个参数,其中 control string是顾名思义就是控制字符串,这个是⽤来控制输出格式的,它是由“ ”、纯⽂本、空格、格式命令、⾮打印字符组成。我们的控制字符都是放在“ ”中的,纯⽂本和空格在printf函数中它会原封不动的在屏幕中打印出来。⽽格式命令有很多,主要是⽤来限制⼀些变量、常量、表达式、函数(指有返回值的函数)的输出形式。具体的格式命令如下表:
单字符%c
字符串%s
带符号的⼗进制整数%d(整数的数字位数)
浮点数(⼗进制计数法)%f(数字的整数部分如实输出。⼩数部分保留 6 位。如果⼩数部分不是 6 位,末尾填零;否则,四舍五⼊取到 6
位)
浮点数(⼗进制计数法)%lf
浮点数(指数计数法)%e(⼩数点左侧保留⼀位数字,右侧保留 6 位数字(与上⾯的 %f 相同))
浮点数(%f或者%e中较短的⼀
个)
%g
不带符号的⼗六进制整数%x
不带符号的⼋进制整数%o
不带符号的⼗进制整数%u
再过来这个就是⾮打印字符了,⾮打印字符也很丰富,如下表:
例如:printf(“5+2= %d\n”, 5+2); printf(“5+2= %f\n”, 5.0+2.0);
Printf(“hello, %s”, “world”); printf(“%%”); //输⼊百分号
第⼆个就是参数列表了,在控制字符串中%有⼏个,参数就有⼏个,参数的类型要和控制字符串中的向匹配(注意:int和单个字符的输出%c可以相互转换),这⾥的参数可以是变量、常量、表达式、函数(指有返回值的函数)。
重点来了,printf函数进阶(修饰符)
a.字符宽度修饰符,例如:printf(“%4d”,500); 可以⽤于浮点型、双精度型和字符数组型(字符串);范围宽度修饰符是⼀个整数,定义了数据项的最⼤范围宽度。
b.“-” 修饰符,例如:printf(“%-d”,500); 数据项在范围内向左对齐,从范围最左侧的位置开始输出数据项。
c.精度修饰符,例如:printf(“%.2f”,3.14159); 可以⽤在浮点型、双精度型或字符数组型(字符串)中;如果⽤在浮点型或双精度型数据中,数字字符串表⽰⼩数右侧最多可输出的数字位数。
d.“0” 修饰符(填充在数字左边,右边⽆效,保证数据准确性);字段的默认填充符是空格。如果⽤户希望⽤零作为填充符,需要使⽤此修饰符。
e.“*” 修饰符,如果⽤户不希望预先指定字段宽度,⽽希望程序来指定,则需要⽤到此修饰符。这个修饰符会有四舍五⼊的情况,如果要指定位数,那么我们要在数据前在加⼀个数据来表⽰我们的位数(printf("%.lf\n", 2, 80.0);不要忘记约束⼩数点后的要在*前⾯加⼩数点。printf("[%*.*f]",8,2,123.456);这⾥要注意在%*.*f这⾥的 . 前有⼀个这个表⽰约束整个数据的输出,也就是这个数据输出最多占8位,不⾜⽤空格补齐)。其实这个*修饰符只是做到可以⽤⼀个变量去替代他,然后就可以做到⽤程序去控制数据的输出格式。
devops流程包含哪几个阶段第⼆个函数scanf()putchar函数
这是输⼊函数,要使⽤它,那么我们要先引⼊系统头⽂件–#include <stdio.h>。
我们还是从这个函数的功能说起,⽤于接受数据,可以从键盘中输⼊数据。
它的函数原型:int scanf(“control string”, argument list);
返回值:输⼊成功的参数数量,否则返回0。
函数参数:这个也是由两部分组成,⼀个是控制字符串,另⼀个就是参数列表。
控制字符串,它也是由“ ”、纯⽂本、空格、格式命令、⾮打印字符组成。我们的控制字符串都是放在“
”内,因为这个函数是⽤来作为输⼊的,所以当在控制字符串中插⼊了纯⽂本,空格,符号时,那么我们输⼊的时候也要在相同位置输⼊纯⽂本,空格,符号。(如:scanf(“%d n, %c”, &a, &b),在这⾥我们在输⼊的时候也要输⼊空格+n, 才⾏)。格式命令,同printf⼀样,不过他没有%g。⾮打印字符也是同上,不过我们在使⽤的时候不要使⽤到\n和\r(回车和制表符),主要是⽤到这个函数的话,那么你在结束这个scanf()函数的时候就要注意,你按⼀次回车不会结束这个函数,要按两次。
参数列表:在控制字符串中%有⼏个,参数就有⼏个,参数的类型要和控制字符串中的向匹配。我们这⾥的参数是变量的地址,如果是本⾝可以表⽰地址的,那么可以不需要⽤到&(数组)。(注意:int和单个字符的输出%c可以相互转)
我们以char类型输⼊数据的时候,以int类型输出,那么输出的是他的ASCII码,相同的如果我们以int输⼊数据,以char类型输出,那么输出的是对应ASCII码的数据。
我们在输⼊单个字符的时候要注意,我们最好把表⽰单个字符的格式命令(%c)放在最前⾯或者重新在写⼀个语句。因为我们在使⽤回车的时候,我们的缓存中会存储回车(\n),所以我们重新写的语句会把回车当做符号吸收,然后输出。所以我们在另外写⼀个语句前要先清除回车。⽤fflush(stdin)(这个函数可以清空输⼊缓存区,清空输出缓存区是⽤fflush(stdout))。要时刻记得scanf函数在使⽤完后,会在缓存区留下⼀个回车,可能会影响你下次的输⼊。
#include<stdio.h>
int a=0, b=0, c=0;
char demo=0;
scanf("%d %d %d",&a,&b,&c);
fflush(stdin);//这⾥就是先吸收回车,因为回车也是⼀个字符
scanf("%c",&demo);
第三个函数:getchar()
记得引⼊头⽂件#include <stdio.h>
①函数原型:int getchar(void);//没有参数。
②函数功能:从终端输⼊⼀个字符。
③返回值:返回输⼊字符的ASCII码,可以使⽤字符变量或者整型变量接收。
注意:getchar()函数没有参数,但仍然必须使⽤括号。缓冲字符,直到⽤户按回车键。虽然可以输⼊多个字符,但函数只接受第⼀个字符,其它字符会被存储在缓存区⾥⾯,等下次在碰到要输⼊的时候再取出来⽤。因为这个返回的是int,所以我们在接受字符的时候,⽤char类型的也可以接收。
例如:
write as 木马椅#include<stdio.h>
char a=0;
a =getchar();
记得当我输⼊:1 2 3 4 5 6时他只会把1赋值给a其它不会赋值,留在缓存区之中等待下⼀次输⼊的到来,因为getchar只会吸收⼀个字符。
还有就是这个输⼊函数会吸收回车,并储存在变量⾥。
第三个函数:putchar()
①函数原型:int putchar(int c);
②函数功能:从终端输出⼀个字符, 且转换成ASCII码返回。
③函数参数:其中c要输出的字符,可以是字符型常量、字符型变量、整型常量、整型变量表达式、转义序列等。
④putchar() 的选项和效果,如下表:
getchar()和putchar()应⽤举例:
第五个函数:getch()
在使⽤这个函数的使⽤要导⼊系统库#include <conio.h>
①函数原型:int getch (void);
②函数功能:从终端输⼊⼀个字符。
③返回值:返回输⼊字符的ASCII码,可以使⽤字符变量或者整型变量接收。
④注意,这个函数在使⽤的时候并不会回显输⼊的字符,也就是会有⼀个保密的作⽤。这个函数也会
吸收回车并储存在变量⾥⾯,这个函数吸收的回车和之前的不太⼀样,前⾯储存的形式是‘\n’,⽤getch储存起来是‘\r’。
第六个函数:putch()
在使⽤这个函数的使⽤要导⼊系统库#include <conio.h>
① 函数原型:int putch (int c);
② 函数功能:从终端输出⼀个字符, 且转换成ASCII码返回。
③ 函数参数:其中c要输出的字符,可以是字符型常量、字符型变量、整型常量、整型变量表达式、转义序列等。
getch()和putch()⼀起使⽤作为密码的输⼊
#include<stdio.h>
#include<conio.h>
int main()
{
char key[9]={0};
char account[9]={0};
int i=0, j=0;
printf("请输⼊你的账号:");
while(1)格式化英语怎么读
{
account[i]=getch();
if(i==8)
{
if(account[i]=='\r')
break;
continue;
}
else
{
if(account[i]=='\r')
{
if(i==0)
{
printf("\n请输⼊你的账号:");
continue;
}
else
break;
}
else
{
if((account[i]>='0'&& account[i]<='9')||(account[i]>='a'&& account[i]<='z')||(account[i]>='A'&& account[i]<='Z')) {
putch(account[i]);
i++;
}
else
scriptures英语怎么读continue;
}
}
}
putch('\n');
printf("你输⼊的账号是:");
//这⾥是打印账号
for(j=0; j<i; j++)
putch(account[j]);
j=0;
printf("\n请输⼊你的密码:");
while(1)
{
key[j]=getch();
//对于回车的判断
if(key[j]=='\r')
{
//⾄少输⼊⼀个密⽂
if(j==0)
{
printf("\n请输⼊你的密码:");
continue;
}
else
break;
}
if(j==8)//达到输⼊的数量后不再输⼊
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论