C基本语句(下)

继上上篇博客的putchar语句,当时有个实例程序要写,今天给补上:

#include <stdio.h>

void main()
{
  char a = 'B',b = 'o',c = 'k';
  putchar(a);
  putchar(b);
  putchar(b);
  putchar(c);
  putchar('\t');
  putchar(a);
  putchar(b);
  putchar('\n');
  putchar(b);
  putchar(c);
}

当时我看PPT的时候,一脸懵逼,这不都一样呢吗?最后觉得实践出真知,于是得出下列的结果
在这里插入图片描述
getchar函数(键盘输入函数)

顾名思义,这个函数就是从键盘上输入一个字符
其一般形式为:
getchar();
通常将输入的字符赋予一个字符变量,构成赋值语句。

char c;
c = getchar();

例【7.1】

#include <stdio.h>
void main()
{
char c;
printf(“input a character\n”);
c = getchar();
putchar©;
}

输出结果,就是字符串c里面的内容。如图所示:
在这里插入图片描述

格式输入与输出

printf函数(格式输入函数):
其关键字最后一个字母f即为format之意。其功能是按用户指定的格式,将指定的数据显示到显示屏上。

1、printf函数调用的一般形式

printf函数是一个标准库函数,它的函数原型在“stdio.h”中。其作为特例,并不要求在使用printf函数之前必须包含stdio.h文件

一般形式为:
printf(“格式控制字符串”,输出表列)
格式控制字符串用于指定输出格式。格式控制串可由格式字符串跟非格式字符串两种组成。%后面跟各种格式字符,用来说明输出数据的类型、形式、长度、小数位数等。如:
”%d“表示按十进制整型输出
”%ld“表示按十进制长整型输出
”%c“表示按字符型输出等
非格式字符串在输出时原样照印,在显示中起作用。要求格式字符串和各输出项在数量和类型上应该一一对应。

例【7.2】

#include <stdio.h>

void main()
{
   int a = 88,b = 89;
   printf("%d,%d\n",a,b);
   printf("%d,%d\n",a,b);
   printf("%c,%c\n",a,b);
   printf("a=%d,b=%d\n",a,b);
}

输出结果:
第一个跟第二个输出按照十进制整型输出,第三个则是按照字符型输出,所以会输出a,b
在这里插入图片描述
格式字符串
1)类型:类型字符以输出数据的类型,其格式符和意义如下表所示:
在这里插入图片描述
2)标志:标志字符有四种:-、+、#和空格,其意义如下表所示:
在这里插入图片描述
3)输出最小宽度:用十进制整数来表示输出的最小位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0
4)精度:精度格式符以”.“开头,后跟十进制整数。若输出数字,则表示小数的位数,若输出字符,则表示输出字符的个数,若实际位数大于所定义的精度数,则截去超过的部分。
5)长度:长度格式符为h,l两种,h表示短整型量输出,l表示长整型量输出。

例【7.3】

#include <stdio.h>

void main()
{
  int a = 15;
  float b = 123.1234567;
  double c = 12345678.1234567;
  char d = 'p';
  printf("a=%d,%5d,%o,%x\n",a,a,a,a);
  printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
  printf("c=%lf,%f,%8.4lf\n",c,c,c);
  printf("d=%c,%8c\n",d,d);
}

输出结果:
进行解释一下:首先对于第一个printf中,%d按十进制输出,%5d的意思就是输出的最小位数为5,然而a等于15,所以少了三位就用三个空格来补。(如果换成%3d,则输出的结果将是15前面有一个空格),%o则是结果以八进制数输出,%x则结果是以十六进制输出。第二个printf里面,%f是以浮点形式输出,%lf是以长浮点型输出,%5.4lf中5代表整数部分的最大位数可以是5位,而小数部分则只能是4位,超出的部分要舍去, %e是以指数形式输出。第三个printf中,前面的%lf跟%f的概念是一致的,%8.4lf我们也能够推测到整数部分最大位数为8位,而小数部分则只能是4位。第四个printf中,%c是以字符形式输出,%8c是指输出的最小位数为8位,因此前面有控制台打印出来的结果中间空了7个空格
在这里插入图片描述

注意:使用printf函数有一个需要注意的问题,输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右也可以从右到左。
例如:

#include <stdio.h>

void main()
{
int i = 8; 
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i--,i++,i--,-i++,-i--);
}

输出结果:
在这里插入图片描述
相对应的:

#include <stdio.h>

void main()
{
int i = 8; 
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
}

来看一下最后的输出结果:

在这里插入图片描述
对照一下,结果果然不一样。嗯,说实话,i++,i–这种东西我真的是很迷,已经被搞两次了,崩溃。

scanf函数(格式输入函数)
scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

发布了10 篇原创文章 · 获赞 1 · 访问量 1240

猜你喜欢

转载自blog.csdn.net/weixin_43671182/article/details/94919389
今日推荐