文章目录
- 基本的输入和输出函数的用法
-
- printf() —— 将变量的内容输出到显示器上
-
- 为什么需要输出控制符
- printf的基本用法
- printf中%x及其相关的用法
- scanf() [通过键盘将数据输入到变量中]
-
- scanf用法_不含非输入控制符
- scanf用法_含有非输入控制符
- 一次给多个变量键盘赋值
- scanf对用户非法输入的处理
基本的输入和输出函数的用法
printf() —— 将变量的内容输出到显示器上
四种用法
- printf(“字符串\n”);
- printf(“输出控制符”,输出参数);
- printf(“输出控制符1 输出控制符2 ……”,输出参数1, 输出参数2,……); 输出控制符和输出参数的个数必须一一对应
- printf(“输出控制符 非输出控制符”, 输出参数);
输出控制符包含如下:
%d | 整形 int |
---|---|
%ld | 长整型 long |
%ld | 长整型 long |
%c | 字符 char |
%f | 单精度浮点型 float |
%lf | 双精度浮点型 double |
%x(或者%X后者%#X) | int 或 short int 或 long int |
%o | 同上 |
%s | 字符串 |
为什么需要输出控制符
- 01组成的代码可以表示数据也可以表示指令
- 如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同的输出格式输出就会有不同的输出结果
郝斌C语言 printf与scanf的用法基本的输入和输出函数的用法
printf的基本用法
#include<stdio.h>
int main(void)
{
1. // printf("哈哈!\n"); // \n表示换行符
2. // int i = 10; // i对应的不是10,而是10的二进制代码
// printf("%d", i); //d是十进制
3. // int j = 3;
// int k = 5;
printf("%d %d\n", j, k); // ok
printf("%d\n", j, k); // 只有一个3,error 输出控制符和输出参数的个数不匹配
4. printf("i = %d, j = %d\n", j, k);
return 0;
}
printf中%x及其相关的用法
/*
时间: 2020/03/16 21:14
功能:……
目的:
测试%x %X %#x %#X的用法
*/
#include<stdio.h>
int main(void)
{
int x = 47; // 100是十进制
printf("%x\n", x); // 输出结果是:2f
printf("%X\n", x); // 输出结果是:2F
printf("%#x\n", x); // 输出结果是:0x2f
printf("%#X\n", x); // 输出结果是:0X2F %#X推荐使用
return 0;
}
/*
在VC++中的输出结果是:
--------------------------
2f
2F
0x2f
0X2F
--------------------------
总结:
……
*/
scanf() [通过键盘将数据输入到变量中]
两种语法:
用法一:scanf(“输入控制符”, 输入参数);
功能: 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中
用法二:scanf(“非输入控制符 输入控制符”, 输入参数);
功能: 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中 非输入控制符必须原样输入
如何使用scanf编写出高质量的代码
- 使用scanf之前最好先使用printf提示用户以什么样的方式来输入
- scanf中尽量不要使用非输入控制符,尤其是不要用\n
- 应该编写代码对用户的非法输入做适当的处理
while ( (ch = getchar()) != '\n')
continue;
scanf用法_不含非输入控制符
#include<stdio.h>
int main(void)
{
int i;
scanf("%d", &i); // 输入是默认以字符形式输入 所以需要对其格式化
// &i 表示i的地址 &是一个取地址符
printf("i = %d\n", i);
return 0;
}
scanf用法_含有非输入控制符
#include<stdio.h>
int main(void)
{
int i;
scanf("m%d", &i); // 输入 mn 、 123 都是错误的 输入m123 正确
printf("i = %d", i);
return 0;
}
一次给多个变量键盘赋值
#include<stdio.h>
int main(void)
{
int i, j,k;
scanf("%d %d %d", &i, &j, &k); // 输入1 2 3 输出显示1 2 3
printf("请输入三个值,中间以逗号分隔:");
scanf("%d,%d,%d", &i, &j, &k); // 输入1,2,3 输出显示1 2 3
printf("i = %d, j = %d, k = %d\n", i, j, k);
scanf("%d\n", i); // 非常不好的输入格式
return 0;
}
scanf对用户非法输入的处理
#include<stdio.h>
int main(void)
{
int i;
char ch;
scanf("%d", &i);
printf("i = %d\n", i);
// ……
while ( (ch = getchar()) != '\n')
continue;
int j;
scanf("%d", &j);
printf("j = %d\n", j); // 在程序的某一块 很可能会接收到前面的垃圾数据
return 0;
}