1、printf
#include <stdio.h>
int main()
{
/*
* 1.printf作用:
* 把指定的数据输出到屏幕上
* 2.printf格式:
* printf("输出的内容");
* printf("格式化字符串", 输出列表项);
* 3.格式化字符串格式:
* %[标志][输出宽度][.精度][长度]类型
*/
// printf("hello c\n");
// int num = 998;
// printf("num = %i\n", num);
// 输出整型常量和变量
int num = 666;
// printf("%i\n", num);
// printf("%i\n", 777);
// printf("%d\n", num);
// printf("%d\n", 777);
// 输出实型常量和变量
float fValue = 1.11F;
double dValue = 2.22;
// printf("%f\n", fValue);
// printf("%lf\n", dValue);
// printf("%f\n", 3.33F);
// printf("%lf\n", 4.44);
// 输出字符型常量和变量
char ch = 'a';
printf("%c\n", ch);
printf("%c\n", 'b');
return 0;
}
#include <stdio.h>
int main()
{
/*
* 1.printf作用:
* 把指定的数据输出到屏幕上
* 2.printf格式:
* printf("输出的内容");
* printf("格式化字符串", 输出列表项);
* 3.格式化字符串格式:
* %[标志][输出宽度][.精度][长度]类型
*/
/*
* 1.宽度格式:
* %[输出宽度]类型
* 2.宽度作用:
* 指定输出内容的位数
* 如果输出内容实际的宽度大于或者等于指定的宽度, 那么会按照实际输出内容的宽度输出
* 如果输出内容实际的宽度小于指定的宽度, 那么会在实际输出内容的前面添加空格
*/
// int num = 999;
// printf("|%i|\n", num);
// printf("|%1i|\n", num); // 宽度小于实际位数
// printf("|%3i|\n", num); // 宽度等于实际位数
// printf("|%5i|\n", num); // 宽度大于实际位数
/*
* 1.标志格式:
* %[标志]类型
* %[标志][输出宽度]类型
* 2.标志作用:
* + 当输出值为正数时,在输出值前面加上一个+号, 默认不显示
* 空格 输出值为正数时,在输出值前面加上空格, 为负数时加上负号
* - 左对齐, 默认右对齐
* 0 右对齐时, 用0填充宽度.(默认用空格填充)
*/
/*
int num = 999;
printf("%i\n", num);
// printf("%+i\n", num);
// printf("% i\n", num);
printf("|%5i|\n", num); // 指定宽度
printf("|%-5i|\n", num); // 指定标志和宽度
*/
int num = 1;
printf("%i\n", num);
printf("|%2i|\n", num); // 指定宽度
printf("|%02i|\n", num); // 指定标志和宽度
// 2015-01-08
return 0;
}
#include <stdio.h>
int main()
{
/*
* 1.printf作用:
* 把指定的数据输出到屏幕上
* 2.printf格式:
* printf("输出的内容");
* printf("格式化字符串", 输出列表项);
* 3.格式化字符串格式:
* %[标志][输出宽度][.精度][长度]类型
*/
/*
* 1.精度格式:
* %[.精度]类型
* 2.精度作用:
* 指定输出小数保留的位数
* 3.精度其它格式:
* %[.*]类型
*/
/*
float fValue = 1.234567890123456789F;
double dValue = 1.234567890123456789;
printf("%f\n", fValue);
printf("%.2f\n", fValue);
// 注意点: 单精度的小数, 有效位数只有6-7位, 超出了有效位数之后输出的就是垃圾数据
// 有效位数是从小数点前面开始计算
// 1.234567890123456789F // 1.234567
// 双精度的小数, 有效位数只有15-16位, 超出了有效位数之后输出的就是垃圾数据
printf("%.10f\n", fValue);
printf("%.10f\n", 12345.67123456789F);
printf("%.10lf\n", dValue);
*/
// double dValue = 1.234567890123456789;
// printf("%.*lf\n", 5, dValue);
char a = 'a';
short int b = 123;
int c = 123;
long int d = 123;
long long int e = 123;
printf("%hhi\n", a);
printf("%hi\n", b);
printf("%i\n", c);
printf("%li\n", d);
printf("%lli\n", e);
return 0;
}
2、scanf
#include <stdio.h>
int main()
{
/*
* 1.scanf作用:
* 接收键盘输入的内容
* 2.scanf格式:
* scanf("格式化字符串", 地址列表);
* 3.&取地址符号
* &变量名称, 可以获取变量对应的内存地址
*/
// int num;
// scanf("%i", &num);
// printf("num = %i\n", num);
// float fValue;
// scanf("%f", &fValue);
// printf("fValue = %f\n", fValue);
// double dValue;
// scanf("%lf", &dValue);
// printf("dValue = %lf\n", dValue);
char ch;
scanf("%c", &ch);
printf("ch = %c\n", ch);
return 0;
}
#include <stdio.h>
int main()
{
/*
* scanf注意点:
* 1.scanf函数的第二个参数, 只能接受变量地址, 不能接受变量名称
* 2.scanf函数, 如果接受的不是字符类型的数据, 那么输入的空格,TAB,回车都会被忽略
* 3.scanf函数的格式化字符串不能以\n结尾, 如果以\n结尾, 那么scanf函数永远无法结束
* 4.scanf函数的格式化字符串中,如果除了格式化字符串还有别的字符串, 那么必须原样输入, 否则接收的数据就不对
* 5.scanf函数如果需要同时接收多个非字符类型的数据, 可以通过空格,TAB,回车作为分隔符
*/
int num;
// scanf("%i", &num);
// scanf("%i\n", &num);
// scanf("num = %i", &num);
// printf("num = %i\n", num);
int value;
// scanf("%i,%i", &num, &value);
scanf("%i%i", &num, &value);
printf("%i,%i\n", num, value);
// int num = 998;
// printf("num = %i\n", num);
// int value = 668;
// printf("%i,%i\n", num, value);
return 0;
}
#include <stdio.h>
int main()
{
/*
* 1.scanf函数会先从输入缓冲区中获取数据, 如果输入缓冲区中没有数据, 那么程序就会阻塞, 等待用户输入数据
* 2.如果用户输入了数据, scanf函数会将用户输入的数据放到输入缓冲区中, 然后再从输入缓冲区中获取数据
* 3.如果输入缓冲区中已经有数据了, 那么就不会要求用户输入数据, 会直接从输入缓冲区中获取数据
*
* fflush函数:
* 用于清空输入缓冲区, 当只能在Windows上使用
* setbuf函数:
* 用于清空输入缓冲区, 可以在所有平台使用(Windows/Linux/Max OS)
* 推荐:
* 以后每次使用完scanf函数都在后面调用一次setbuf函数, 可以降低程序出现问题的几率
*/
int num1;
scanf("%i", &num1);
printf("num1 = %i\n", num1);// 11
// fflush(stdin); // 清空输入缓冲区
setbuf(stdin, NULL);// 清空输入缓冲区
char ch;
scanf("%c", &ch);
printf("ch = %c\n", ch);// 空格
// fflush(stdin); // 清空输入缓冲区
setbuf(stdin, NULL);
int num2;
scanf("%i", &num2);
printf("num2 = %i\n", num2);// 12
// fflush(stdin); // 清空输入缓冲区
setbuf(stdin, NULL);
return 0;
}
网友评论