printf函数是输出到控制台函数
printf函数是c语言标准库函数,可以准确的格式输出程序运算结果spa
printf函数的调用格式为:code
简单用法:blog
// int类型 int number = 10; printf("number的值是%i",number) //使用%i // float类型 float FloatNumber = 20.0f; // float类型要加上f标示,默认是double类型的 printf("FloatNumber的值是%f",FloatNumber) // 使用%f // double类型 double DoubleNumber = 30.01234567890; printf("DoubleNumber的值是%lf",DoubleNumber) //使用lf,longfloat printf("DoubleNumber的值是%.10lf",DoubleNumber) // printf函数默认强制输出小数点后6位,想要输出双精度的须要指定你要输出小数点后面几位 // char类型 char CharNumber = 'a'; printf("CharNumber的值是%c",CharNumber) // 使用%c
指定位宽字符串
// 指定位宽 int number = 99; // 如何指定位宽,%mi;其中m就是位宽,而i就是输出对应的数据类型 printf("%i\n",number); printf("%5i\n",number); // 能够明显的看到number的左边多出来一段空格,实际上是由三个空格的 // 默认状况下位宽是右对齐,若是须要输出的位宽不够会在左边补空格 // 若是在位宽前面加负号-,就会改变对齐方式为左对齐,若是须要输出的位宽不够会在右边补空格 printf("%-5i\n",number); // 若是指定的位宽,但实际的内容超过了位宽的,会按照实际内容进行展现 int value = 999999; // value是有6位的 printf("%5i\n",value); //这里的value打印出是6位的,并非指定位宽的5位
打印出01,02,03的效果get
// 若是咱们想打印出01,02,03,04,05的效果的话怎么办呢? // 只须要在指定位宽前面加0便可 int sum = 1; printf("%2i\n",sum); // 打印出 1; printf("%02i\n",sum); // 打印出01 在指定位宽的前面加了0,注意添加的位置
保留位数it
// 保留位数 float floatValue = 3.1415926666; printf("%f\n",floatValue); // %f默认保留6位小数 // 指定保留几位小数 printf("%.2f\n",floatValue); // %.nf 在前面添加., n为保留几位小数的数字便可 // %f各类坑 // 1,我想把floatValue所有打印出来,那保留位数填写10看看应该所有都能显示吧? // 若是输出数据超出了有效位数,那后面就会出现一些垃圾数据。 printf("%.10f\n",floatValue); // 3.1415927410 看有效位数y只有7位 // 那若是想要完整输出这个floatValue就要用double类型 double doubleValue = 3.1415926666; printf("%.10lf\n",doubleValue); // double类型的有效位数是15位,那若是超过15位的话也没有办法了哈
scanf函数是一个阻塞式函数,程序若是遇到就会停下来等待用户输入内容class
格式:scanf("格式化字符串",列表项)变量
// 要求存储用户输入的整数 // 1,用户输入的整数是肯定的么?不肯定,定义一个变量 int number = 0; // 2,如何接受用户输入的整数scanf() printf("请输入一个整数,以回车结束\n"); scanf("%i",&number); // 使用&符号,注意必须告诉scanf函数详细地址,才能存储用户输入的数据 // 3,格式:scanf("格式化字符串",列表项) printf("%i\n",number);
练习:从控制台输入两个整数,计算两个整数的和原理
// 练习:从控制台输入两个整数,计算两个整数的和 // 定义两个变量 int value1 = 0; int value2 = 0; // 使用scanf函数,让用户从控制台输入整数 printf("请您输入第一个整数,以回车结束\n"); scanf("%i",&value1); printf("请您输入第二个整数,以回车结束\n"); scanf("%i",&value2); // 定义s第三个变量,接收两个变量相加的值 int sum = 0; // 求和 sum = value1+value2; printf("%i+%i=%i\n",value1,value2,sum);
// 练习:从控制台输入两个整数,计算两个整数的和 // 定义两个变量 int value1 = 0; int value2 = 0; // 使用scanf函数,让用户从控制台输入整数 printf("请您输入两个数字,以逗号分隔,以回车结束\n"); scanf("%i,%i",&value1,&value2); // 注意输入的内容要求必需要与格式花字符串一摸同样 // 若是输入的数据与格式化字符串不匹配,那么scanf就会自动终止 // 定义s第三个变量,接收两个变量相加的值 int sum = 0; // 求和 sum = value1+value2; printf("%i+%i=%i\n",value1,value2,sum);
scanf("%i%i",&value1,&value2); // 此时在控制台输入回车或者空格,才能区分这两个数据
scanf("%i,%c,%i",&value1,&value3,&value2); printf("%i,%c,%i\n",value1,value3,value2);
scanf("%i\n",&value1); // 此时在控制台输入按回车是没有用的,结束不了,怎么结束呢输入一个不匹配的字符便可
int value1 = 0; int value2 = 0; char value3; // value1-->123 value3-->a value2-->456 // scanf("%i%c%i",&value1,&value3,&value2); printf("请输入数据,以回车结束\n"); scanf("%i%c%i",&value1,&value3,&value2); printf("value1=%i,value3=%c,value2=%i\n",value1,value3,value2); // 若是输入缓冲区有内容就不会让用户去输入,直接取 char value4; int value5 = 0; scanf("%c%i",&value4,&value5); printf("value4=%c,value5=%i\n1",value4,value5); 控制台: 请输入数据,以回车结束 123 你好啊 456 value1=123,value3= ,value2=0 value4=n,value5=0 1Program ended with exit code: 0