c语言个人笔记【二】
E.menos
代码规范性!!!
- 如何看懂一个程序?
- 流程
- 每个语句的功能
- 试数
二. 基本的输入与输出函数的用法:
1.printf()–将变量的内容输出到显示器上
-
为什么需要输出控制符?
- 组成的代码可以表示数据也可以表示指令
- 如果01组成的代码表示数据的话,那么同样的01代码以不同的输出格式就会有不同的显示结果
-
printf的使用:
-
printf(“字符串”);
-
printf(“输出控制符”,输出函数);
-
printf(“输出控制符1 输出控制符2…”,输出参数1,输出参数2…);
输出控制符与输出函数的个数一一对应。
-
printf(“输出控制符 输出控制符”,输出参数);
输出控制符包含如下
%d – int
%ld – long int
%c – char
%f – float
%lf – double
%x(或 %X 或 %#X ) – int 或 long int 或 short int
%o – 字符串
-
//目的:测试%x %X %#x %#X
#include<stdio.h>
int main(void)
{
int x = 47;//47是十进制
printf("%x\n",x);//输出结果是:2f
printf("%X\n",x);//输出结果是:2F
printf("%#X\n",x);//输出结果是:0X2F
printf("%#x\n",x);//输出结果是:0x2f
return 0;
}
2.scanf()–通过键盘将数据输入到变量中
两种用法:
-
用法一:scanf(“输入控制符”,输入参数);
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输出参数的值为地址的变量中
-
用法二:scanf(“非输入控制符 输入控制符”,输入参数);
功能:将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入输入参数的值为地址的变量中 非输入控制符必须原样输入
如何更好地使用scanf():
- 使用scanf之前最好使用printf提示用户以什么样的方式输入
- scanf中尽量不要使用费输入控制符,尤其不要使用"\n"!!!!
- 编写代码时对用户的非法输入做适当处理( 如2.4 ) 非重点
2.1 scanf()__不含非输入控制符
#include <stdio.h>
int main(void)
{
int i;
scanf("%d",&i); // &i表示i的地址,&是一个取地址符
printf("i=%d\n",i);
return 0;
}
2.2 scanf()__含有非输入控制符
#include <stdio.h>
int main(void)
{
int i;
scanf("m%d",&i); //m123:正确的输入 123:非法输入
//当输入的是m123n时,输出显示为123
printf("i=%d\n",i);
return 0;
}
2.3 一次给多个变量赋值
#include <stdio.h>
int main(void)
{
int i,j,k;
printf("请输入三个值")
scanf("%d %d %d",&i,&j,&k);
printf("i=%d,j=%d,k=%d\n",i,j,k);
return 0;
}
2.4 scanf()对用户非法输入的处理
#include <stdio.h>
int main(void)
{
int i;
scanf("%d",&i);
printf("i=%d",i);
//......
int j;
scanf("%d",&j);
printf("j=%d",j);
//当输入为123m时,输出i=123,j=-588993460
//原因是档输入123m不是整数是,i先读取123,j读取m非法输入,会连续读取
//因此应在两程序之间加一个清除数据的程序,用户分别输入两个数据
return 0;
}
#include <stdio.h>
int main(void)
{
int i;
scanf("%d",&i);
printf("i=%d",i);
//......
while ((ch=getchar())!='\n)
continue;
int j;
scanf("%d",&j);
printf("j=%d",j);
return 0;
}