#include<stdio.h>
main()
{
char c = 'a',j = 97;
printf("%c%4d/n",c,j);
printf(%4d%c/n",c,j);
printf(%s/n),"CWW");
printf(%10.6s","china jiangsu");//占10列,但是输出前6个字符,并且右对齐
printf(%-6.5s/n","nanjing");//占6列,只输出钱5个字符,且左放
}
2.l h 都是控制字符,一个表示长整型 一个表示短整型 biru %ld,*表示跳过该整数 scanf(%d%*d%d",&a,&b,&c) 输入123,34,,43,输出的话就只有123,43;
3.采用f格式输出时,若不指定余款或者只指定单域宽,整数部分按实际长度输出,输出小数点喉,在输出6位小数,单最后几位可能不准确
main(){float x= -1234.5678;printf("x= %f",x);}输出为-1234.567749;
4.e,g格式输出符 .e与f相同 g系统自动选择采用f或者e输出
5.scanf("%d",&d);用f输入实数的时候不能采用双域宽,而且变量的类型必须是float;
getchar(),putchar() 这个都是无格式的字符存取函数
典型错误
scanf("%d%d",&a,&b);
x = getchar();
y = getchar();
printf("a = %d,b= %d,x = %c,y = %c",a,b,x,y);
输入:1 2(空格或者回车)34;
结果为:a = 1,b = 2,c = ,d = 3;why ?读入空格
如果硬要把这个按照这种输入取得争取的结果,可以这样:
scanf("%d%d",&a,&b);
getchar();
x = getchar();
y = getchar();