初识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;
} 

image.png

字符数据输入

字符数据输入使用的是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; /*程序结束*/
}

image.png

【实例5.3】 使用getchar函数取消获取回车符。

#include<stdio.h>
int main()
{
  char cChar1;    /*声明变量*/
  cChar1=getchar();   /*在输入设备得到字符*/
  putchar(cChar1);    /*输出字符*/
  putchar('\n');    /*输出转义字符换行*/
    /*将此处getchar函数删掉*/
  putchar(getchar());   /*得到输入字符,直接输出*/
  putchar('\n');    /*换行*/
  return 0;   /*程序结束*/
}

image.png

字符串输入输出

字符串输出函数

字符串输出使用的是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;           /*程序结束*/
}

image.png

字符串输入函数

字符串输入函数使用的是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;         /*程序结束*/
}

image.png

格式输出函数

前面章节的实例中常常使用格式输入输出函数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函数的格式字符。

image.png

【实例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;
}

image.png

【实例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;
}

image.png

格式输入函数

与格式输出函数printf相对应的是格式输入函数scanf。该函数的功能是指定固定的格式,并且按照指定的格式接收用户在键盘上输入的数据,最后将数据存储在指定的变量中。

scanf函数的一般格式为:

scanf(格式控制,地址列表)

通过scanf函数的一般格式可以看出,参数位置中的格式控制与printf函数相同。例如%d表示十进制的整型,%c表示单字符。而在地址列表中,此处应该给出用来接收数据变量的地址。例如得到一个整型数据的操作:

scanf("%d",&iInt);  /*得到一个整型数据*/

在上面的代码中,&符号表示取iInt变量的地址,因此不用关心变量的地址具体是多少,只要在代码中在变量的标识符前加&符号,就表示取变量的地址。

image.png

【实例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;
}

image.png

在printf函数中除了格式字符还有附加格式用于更为具体的说明,相应地,scanf函数中也有附加格式用于更为具体的格式说明,如下表所示。

image.png

顺序程序设计应用

【实例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;   /*程序结束*/
}

image.png

【实例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;   /*程序结束*/
}

image.png

其中,用于单个字符的输入、输出时,使用的是getchar和putchar函数,而gets和puts函数用于输入、输出字符串,并且puts函数在遇到终止符时会进行自动换行。为了能输出其他类型的数据,可以使用格式输出函数printf和格式输入函数scanf。在这两个格式函数中,利用格式字符和附加格式字符可以更为具体地进行格式说明。


相关文章
|
1月前
|
监控 网络协议 API
C语言系统编程
C语言系统编程
|
1月前
|
C语言
C语言对文件的输入输出
C语言对文件的输入输出
17 0
|
1月前
|
存储 C语言
C语言数据的输入举例
C语言数据的输入举例
17 1
|
1月前
|
存储 C语言
C语言数据的输出举例
C语言数据的输出举例
17 1
|
15天前
|
C语言 C++ 数据格式
【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数
【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数
|
1天前
|
网络协议 程序员 编译器
C语言:编程世界的基础与魅力
C语言:编程世界的基础与魅力
|
3天前
|
C语言
深入理解C语言中的printf函数及数据输出
深入理解C语言中的printf函数及数据输出
13 0
|
3天前
|
C语言
C 语言解 常见编程题(下)
C 语言解 常见编程题
37 0
|
24天前
|
Linux 测试技术 C语言
【Linux】应用编程之C语言文件操作
【Linux】应用编程之C语言文件操作
|
27天前
|
存储 编译器 程序员
【C语言】整形数据和浮点型数据在内存中的存储
【C语言】整形数据和浮点型数据在内存中的存储
16 0