本文小编为大家详细介绍“C语言怎么实现数据输入和输出”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么实现数据输入和输出”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
C语言的语句用来向计算机系统发出操作指令。一条语句编写完成经过编译后产生若干条机器指令。实际程序中包含若干条语句,因此语句的作用就是完成一定的操作任务。
字符数据输出使用的是putchar函数,作用是向显示设备输出一个字符。该函数的定义为:
int putchar( int ch );
使用时要添加头文件stdio.h,其中的参数ch是要进行输出的字符,可以是字符型变量或整型变量,也可以使用常量。例如输出一个字符A的代码如下:
putchar('A');
使用putchar函数也可以输出转义字符,例如输出字符A:
putchar('\101');
【实例5.1】 使用putchar函数实现字符数据输出。在程序中使用putchar函数,输出字符串“Hello”并且在字符串输出完毕之后进行换行。
#include<stdio.h> int main() { char cChar1,cChar2,cChar3,cChar4; /*声明变量*/ cChar1='H'; /*为变量赋值*/ cChar2='e'; cChar3='l'; cChar4='o'; putchar(cChar1); /*输出字符变量*/ putchar(cChar2); putchar(cChar3); putchar(cChar3); putchar(cChar4); putchar('\n'); /*输出转义字符*/ return 0; }
字符数据输入使用的是getchar函数,此函数的作用是从终端(输入设备)输入一个字符。getchar函数与putchar函数的区别在于没有参数。
该函数的定义为:
int getchar();
使用getchar函数时也要添加头文件stdio.h,函数的值就是从输入设备得到的字符。例如从输入设备得到一个字符赋给字符变量cChar:
cChar=getchar();
【实例5.2】 使用getchar函数实现字符数据输入。在本实例中,使用getchar函数获取在键盘上输入的字符,再利用putchar函数进行输出。本实例演示了将getchar作为putchar函数表达式的一部分,进行输入和输出字符的方式。
#include<stdio.h> int main() { char cChar1; /*声明变量*/ cChar1=getchar(); /*在输入设备得到字符*/ putchar(cChar1); /*输出字符*/ putchar('\n'); /*输出转义字符换行*/ getchar(); /*得到回车字符*/ putchar(getchar()); /*得到输入字符,直接输出*/ putchar('\n'); /*换行*/ return 0; /*程序结束*/ }
【实例5.3】 使用getchar函数取消获取回车符。
#include<stdio.h> int main() { char cChar1; /*声明变量*/ cChar1=getchar(); /*在输入设备得到字符*/ putchar(cChar1); /*输出字符*/ putchar('\n'); /*输出转义字符换行*/ /*将此处getchar函数删掉*/ putchar(getchar()); /*得到输入字符,直接输出*/ putchar('\n'); /*换行*/ return 0; /*程序结束*/ }
字符串输出使用的是puts函数,作用是输出一个字符串到屏幕上。
该函数的定义为:
int puts( char *str );
使用该函数时,先要在其程序中添加stdio.h头文件。其中,形式参数str是字符指针类型,可以用来接收要输出的字符串。例如使用puts函数输出一个字符串:
puts("I LOVE CHINA!"); /*输出一个字符串常量*/
这行语句是输出一个字符串,之后会自动进行换行操作。这与printf函数有所不同,在前面的实例中使用printf函数进行换行时,要在其中添加转义字符'\n'。puts函数会在字符串中判断“\0”结束符,遇到结束符时,后面的字符不再输出并且自动换行。例如:
puts("I LOVE\0 CHINA!"); /*输出一个字符串常量*/
在上面的语句中加上“\0”字符后,puts函数输出的字符串就变成:I LOVE。
【实例5.4】 使用字符串输出函数显示信息提示。在本实例中,使用puts函数对字符串常量和字符串变量都进行操作,在这些操作中观察使用puts函数的方式。
#include<stdio.h> int main() { char* Char="ILOVECHINA"; /*定义字符串指针变量*/ puts("ILOVECHINA!"); /*输出字符串常量*/ puts("I\0LOVE\0CHINA!"); /*输出字符串常量,其中加入结束符'\0'*/ puts(Char); /*输出字符串变量的值*/ Char="ILOVE\0CHINA!"; /*改变字符串变量的值*/ puts(Char); /*输出字符串变量的值*/ return 0; /*程序结束*/ }
字符串输入函数使用的是gets函数,作用是将读取字符串保存在形式参数str变量中,读取过程直到出现新的一行为止。其中新的一行的换行字符将会转化为字符串中的空终止符“\0”。gets函数的定义如下:
char *gets( char *str );
在使用gets字符串输入函数前,要为程序加入头文件stdio.h。其中的str字符指针变量为形式参数。例如定义字符数组变量cString,然后使用gets函数获取输入字符的方式如下:
gets(cString);
在上面的代码中,cString变量获取到了字符串,并将最后的换行符转化成了终止字符。
【实例5.5】 使用字符串输入函数gets获取输入信息。
#include<stdio.h> int main() { char cString[30]; /*定义一个字符数组变量*/ gets(cString); /*获取字符串*/ puts(cString); /*输出字符串*/ return 0; /*程序结束*/ }
前面章节的实例中常常使用格式输入输出函数scanf和printf。其中printf函数就是用于格式输出的函数,也称为格式输出函数。
printf函数的作用是向终端(输出设备)输出若干任意类型的数据。printf函数的一般格式为:
printf(格式控制,输出列表)
括号内包括两部分:
格式控制:格式控制是用双引号括起来的字符串,此处也称为转换控制字符串。其中包括两种字符,一种是格式字符,另一种是普通字符。
格式字符:格式字符用来进行格式说明,作用是将输出的数据转化为指定的格式输出。格式字符是以 “ % ” 字符开头的。 普通字符是需要原样输出的字符,其中包括双引号内的逗号、空格和换行符。 输出列表
输出列表中列出的是要进行输出的一些数据,可以是变量或表达式。
例如,要输出一个整型变量时:
int iInt=10;
printf("this is %d",iInt);
执行上面的语句显示出来的字符是this is 10。在格式控制双引号中的字符是this is %d,其中的this is字符串是普通字符,而%d是格式字符,表示输出的是后面iInt的数据。
由于printf是函数,“格式控制”和“输出列表”这两个位置都是函数的参数,因此printf函数的一般形式也可以表示为:
printf(参数1,参数2,……,参数n)
函数中的每一个参数按照给定的格式和顺行依次输出。例如,显示一个字符型变量和整型变量:
printf("the Int is %d,the Char is %c",iInt,cChar);
下表列出了有关printf函数的格式字符。
【实例5.6】 使用格式输出函数printf。在本实例中,使用printf函数对不同类型变量进行输出,对使用printf函数所用到的输出格式进行分析理解。
#include<stdio.h> int main() { int iInt=10; /*定义整型变量*/ char cChar='A'; /*定义字符型变量*/ float fFloat=12.34f; /*定义单精度浮点型*/ printf("the int is: %d\n",iInt); /*使用printf函数输出整型*/ printf("the char is: %c\n",cChar);/*输出字符型*/ printf("the float is: %f\n",fFloat);/*输出浮点型*/ printf("the stirng is: %s\n","I LOVE YOU"); /*输出字符串*/ return 0; }
【实例5.7】 在printf函数中使用附加符号。(在本实例中,使用printf函数的附加格式说明字符,对输出的数据进行更为精准的格式设计。
#include<stdio.h> int main() { long iLong=100000; /*定义长整型变量,为其赋值*/ printf("the Long is %ld\n",iLong);/*输出长整型变量*/ printf("the string is: %s\n","LOVE");/*输出字符串*/ printf("the string is: %10s\n","LOVE");/*使用m控制输出列*/ printf("the string is: %-10s\n","LOVE");/*使用-表示向左靠拢*/ printf("the string is: %10.3s\n","LOVE");/*使用n表示取字符数*/ printf("the string is: %-10.3s\n","LOVE"); return 0; }
与格式输出函数printf相对应的是格式输入函数scanf。该函数的功能是指定固定的格式,并且按照指定的格式接收用户在键盘上输入的数据,最后将数据存储在指定的变量中。
scanf函数的一般格式为:
scanf(格式控制,地址列表)
通过scanf函数的一般格式可以看出,参数位置中的格式控制与printf函数相同。例如%d表示十进制的整型,%c表示单字符。而在地址列表中,此处应该给出用来接收数据变量的地址。例如得到一个整型数据的操作:
scanf("%d",&iInt); /*得到一个整型数据*/
在上面的代码中,&符号表示取iInt变量的地址,因此不用关心变量的地址具体是多少,只要在代码中在变量的标识符前加&符号,就表示取变量的地址。
【实例5.8】 使用scanf格式输入函数得到用户输入的数据。在本实例中,利用scanf函数得到用户输入的两个整型数据,因为scanf函数只能用于输入操作,所以若在屏幕上显示信息则使用显示函数。
#include<stdio.h> int main() { int iInt1,iInt2; /*定义两个整型变量*/ puts("Please enter two numbers:");/*通过puts函数输出提示信息的字符串*/ scanf("%d%d",&iInt1,&iInt2); /*通过scanf函数得到输入的数据*/ printf("The first is : %d\n",iInt1);/*显示第一个输入的数据*/ printf("The second is : %d\n",iInt2);/*显示第二个输入的数据*/ return 0; }
在printf函数中除了格式字符还有附加格式用于更为具体的说明,相应地,scanf函数中也有附加格式用于更为具体的格式说明,如下表所示。
表示指定的输入项在读入后不赋给相应的变量
【实例5.10】 计算圆的面积。在本实例中,定义单精度浮点型变量,为其赋值为圆周率的值。得到用户输入的数据并进行计算,最后将计算的结果输出。
#include<stdio.h> int main() { float Pie=3.14f; /*定义圆周率*/ float fArea; /*定义变量,表示圆的面积*/ float fRadius; /*定义变量,表示圆的半径*/ puts("Enter the radius:"); /*输出提示信息*/ scanf("%f",&fRadius); /*输入圆的半径*/ fArea=fRadius*fRadius*Pie; /*计算圆的面积*/ printf("The Area is: %.2f\n",fArea); /*输出计算的结果*/ return 0; /*程序结束*/ }
【实例5.11】 将大写字符转化成小写字符。本实例要将一个输入的大写字符转化成小写字符,需要对其中的ASCII码的关系有所了解。将大写字符转化成小写字符的方法就是将大写字符的ASCII码转化成小写字符的ASCII码。
#include<stdio.h> int main() { char cBig; /*定义字符变量,表示大写字符*/ char cSmall; /*定义字符变量,表示小写字符*/ puts("Please enter capital character:");/*输出提示信息*/ cBig=getchar(); /*得到用户输入的大写字符*/ puts("Minuscule character is:"); /*输出提示信息*/ cSmall=cBig+32; /*将大写字符转化成小写字符*/ printf("%c\n",cSmall); /*输出小写字符*/ return 0; /*程序结束*/ }
其中,用于单个字符的输入、输出时,使用的是getchar和putchar函数,而gets和puts函数用于输入、输出字符串,并且puts函数在遇到终止符时会进行自动换行。为了能输出其他类型的数据,可以使用格式输出函数printf和格式输入函数scanf。在这两个格式函数中,利用格式字符和附加格式字符可以更为具体地进行格式说明。
读到这里,这篇“C语言怎么实现数据输入和输出”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。