一.scanf() 与 printf()
- 在调用printf与scanf的时候一定要包含#include<stdio.h>
- printf的用法是:printf("格式控制字符串",输出参数一,输出参数二);
- scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);
#include<stdio.h>
int main(){
int a=996;
printf("%d\n",a);//scanf()同理
return 0;
}
AC拓展:
1. %*,表示接收读取但不存对应的指定的类型数据
用法:scanf(“%d%*c%d”,&a,&b) 例如接收 1 , 2 或者 接收1 / 2 的三个数据时,可以将1赋给a,2赋给b。而中间的字符虽然接收但不用存储,完美的解决用户再输出两个数字时可能有分隔的问题.
2. scanf函数返回值 (说白了就是正确接收多少个参数,返回值就是多少)
- 两个整数的正常输入
- 两个整数的非正常输入
- 两个整数带%*分隔正常输入
3.数据输出宽度
-
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
详细说明 ④:
-
%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。
#include<stdio.h>
int main(){
char s[100];
scanf("%s",s);
printf("%10s\n",s);
return 0;
}
-
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
-
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格
#include<stdio.h>
int main(){
char s[100];
scanf("%s",s);
printf("%10.4s\n",s);
return 0;
}
-
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。
-
%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
#include<stdio.h>
int main(){
float f;
scanf("%f",&f);
printf("%10f\n",f);
return 0;
}
补充:浮点数的小数部分 占6位,小数点 占1位,整数部分 占2位,另外浮点数的精度范围表示有限(存在一定误差)详情请参考 https://blog.csdn.net/imJaron/article/details/78392264
-
%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。
-
%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。
-
%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。
其他格式请读者自行验证区分。
二.cin.get() getchar() cin.getine() getline() gets() scanf()
- cin.get() 读取单个字符,包括任何前导白色空格字符 详情请参考:http://c.biancheng.net/view/1346.html
- getchar() 获取一个字符,以回车结束一次输入,缓冲区残留回车符
- cin.getline() 获取一行字符串
cin.getline(s,100); 每次读取一整行并把Enter键生成的换行符抛弃, s必须为字符数组类型,即 char s[100];
- getline() 是C的,获取一行字符串
getline(cin,s) //接受一个字符串,可以接受空格并输出,必须包含头文件#include<cstring>, s必须为字符串类型,即 string s;输出时需要按两次回车键才能显示,第一次按回车表示字符串结束,第二次按回车才开始输出。
- gets() 接受一个字符串,可以接受空格并输出, 以回车结束一次输入,缓冲区不残留回车符
- scanf(); 以tab space 回车等前导空白 结束一次输入,缓冲区残留回车符
文章来源参考链接:
1.https://www.cnblogs.com/michaeljunlove/p/3883717.html