第二天上手使用VS2017 顺序程序设计

首先字符数据输入/输出

## 关于字符数据的输出,我总结了有两种方式:

## 1)与putchar函数有关;putchar();

## 2)与printf函数有关,printf("%c",getchar());

## 1)putcahr函数

实例《一》

#include<stdio.h>
int main()
{
	char a, b, c, d;
	a= 'h';
	b = 'e';
	c = 'l';
	d = 'o';
	putchar(a);
	putchar(b);
	putchar(c);
	putchar(c);
	putchar(d);
	system("pause");
	return 0;
}

在这里插入图片描述
实例《二》

#include<stdio.h>
int main()
{
	int a = 66, b = 79, c = 89;
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	system("pause");
	return 0;
}

在这里插入图片描述
总结putchar函数:
1)putchar函数是输出字符的函数,它输出的总是字符而不输出整数;
2)putchar©函数中的可以是:字符常量,整型常量(其值在ASCII码的字符范围内);
3)putchar函数每次只能输出一个字符;
4)注意putchar(’\n’)语句{注意使用单引号引起来,而不是双引号,本质是转义字符}的作用与printf("\n")语句作用相同,换行;

## 关于字符数据的输入getchar()

实例《一》
键盘输入大写字母,转成小写字母输出:

#include<stdio.h>
int main()
{
	char c1, c2;
	c1 = getchar();
	c2 = c1 + 32;
	putchar(c2);
	putchar('\n');
    system("pause");
	return 0;
}

这段代码看似简单,实际上也蕴含着很多细节:
1)如果输入的是小写字母的话,输出窗口是没有任何反应的:

输入小写字母的反应
2)如果输入的是数字的话,输出的有可能是小写字母:
在这里插入图片描述
3)如果我们输入大写字母的话,输出的就是与之对应的大写字母

重要结论:大小写字母的ASCII码之间相差为32;具体而言,小写字母比大写字母大32;
在这里插入图片描述

使用putchar(getchar())语句

#include<stdio.h>
int main()
{
	putchar(getchar());
	putchar(getchar());
	putchar(getchar());
	putchar('\n');
    system("pause");
	return 0;
}

在这里插入图片描述
注意,getchar函数也是每次获取一个字符;

关于格式输入/输出函数printf(),scanf();

一般格式printf(”格式控制“,输出表列)

格式声明即格式控制
是由双引号引起来的字符串,常见的是格式字符串,即以%为开头的字符串,%后面根由各种格式字符,以说明数据类型,格式,长度,小数位数

要注意

printf("%d\n%d\n",2,3);两个d之间有换行

在这里插入图片描述

printf("%d %d", 2, 3);两个d之间有空格

在这里插入图片描述

printf("%d%d", 2, 3);两个d之间没有空格,也没有换行

在这里插入图片描述

printf("%d,%d", 2, 3);

在这里插入图片描述
总结:空格,逗号,换行我们都是提倡的,最提倡空格和逗号,两个d连着写是我们最抵触的

1)%d,用于输出一个有符号的十进制整数;
同样可以在格式声明中指明输出数据的域宽,
(例如用%5d,指定数据输出占5位,输出的数据显示在此5位的右侧)

#include<stdio.h>
int main()
{
	printf("%5d\n%5d\n", 12, -345);
	putchar('\n');
    system("pause");
	return 0;
}

在这里插入图片描述

2)%c用于输出一个字符

###也可以指定域宽

  char ch='a';
  printf("%5c",ch);

输出的a前面有4个空格;
在这里插入图片描述
###ASCII码转字符也是可以
一个整数,如果在0~127范围内,可以用%c使之以字符形式输出,在输出时,系统会将该整数作为ASCII码转换成相应的字符,

    short a = 121;
	printf("%c", a);

在这里插入图片描述

3)%s用于输出一个字符串

printf("%s", "CHINA");(输出的结果不包括双引号);

在这里插入图片描述

4)%f用于输出实数(包括单,双精度,长双精度),以小数形式输出

###基本型,用%f表示,不指定输出数据的长度,系统会根据数据的实际情况来决定数据所占的列数,系统处理的一般方法是实数中的整数部分全部输出,小数部分输出6位
###指定数据宽度和小数位数,用%m.nf来表示,

例:%7.2f
指定了输出的数据占7位,其中包括两位小数,对后一位采取四舍五入的方法来处理;整数部分不够位就用0左端补齐,小数部分不够位就用0右端补齐。

5)e格式符,指定以指数的形式输出实数,类似于科学计数法。
如果不指定域宽和位数,不同的编译器会有自己默认的系统处理方式,

printf("%e",123.456);

小数点前必须要有且只有一位非0数字,小数的位数是六位,指数部分占4列(e占1列,指数符号占一列,指数占两列)数值按标准化指数的形式输出
在这里插入图片描述

格式输入函数scanf()函数

scanf函数的一般形式:
scanf(格式控制,地址表列)(其中格式控制是与printf函数类似的);
使用scanf函数常见的问题:
1)scanf函数中格式控制后面应该是变量地址,而不是变量名
scanf("%f%f%f",a,b,c)是错误的,改为&a,&b,&c;
2)如果在格式控制字符串中除了格式声明之外还有其他字符,则在输入数据时应在对应位置应输入与这些字符相同的字符。

scanf_s("a=%f,b=%f,c=%f",&a,&b,&c);

如果不这样输入的话,看似没有影响,其实影响之后的相关参量,因为你不这样输入的话,系统是不认的,输入的形式必须完全对应系统才能认;
3)scanf要求给出变量的地址,所以‘&’必不可少;

猜你喜欢

转载自blog.csdn.net/weixin_44566643/article/details/94667578