刷题/笔试技巧之——scanf和printf的使用针对不同的输入输出格式

一、scanf 的使用


1、格式

      scnaf是输入函数,其格式如下

scanf("格式控制",变量地址);

    举个例子:其中双引号里面是一个%d,表示通过这个scanf用户需要输入一个int型的变量,将其存放在int型变量n中。

scanf("%d",&n);

2、常见的数据类型变量的scanf格式符

数据类型

格式符

举例

int

%d

scanf("%d",&n);

long long

%lld

scanf("%lld",&n);

float

%f

scanf("%f",&fl);

double

%lf

scanf("%lf",&db);

char

%c

scanf("%c",&c);

字符串(char数组)

%s

scanf("%s",str);

说明:

  • 数组名称本身就是代表了这个数组第一个元素的地址,所以不需要再加取地址运算符。
  • 在scanf中,除了char数组整个输入的情况不需要加&之外,其他变量类型都需要加&。

3、针对一些输入带空格的说明

(1)输入整型数字,用空格隔开,即这样输入:3 4      ,在两个%d之间可以不加空格

        因为scanf对除了%c以外的其他格式符(如%d)的输入都是以空白符(即空格、换行等)作为结束判断标志的。

int a,b;
scanf("%d%d",&a,&b);

         1)、输入可以以空格隔开输入

 刷题/笔试技巧之——scanf和printf的使用针对不同的输入输出格式_第1张图片       存的结果 

           2)、输入也可以换行输入

                                                                                    存的结果   刷题/笔试技巧之——scanf和printf的使用针对不同的输入输出格式_第2张图片

 

(2)在使用%c的使用,他会把空格读入

 

         1)实例1  :%c之间不加空格

char a,b;
sacnf("%c%c",&a,&b);

 输入:c和其后空格        输出:a被赋值为字符'c',b为空格  刷题/笔试技巧之——scanf和printf的使用针对不同的输入输出格式_第3张图片

 

          2)实例2 : %c之间加空格

char a,b;
scanf("%c %c",&a,&b);

输入:     输出: 刷题/笔试技巧之——scanf和printf的使用针对不同的输入输出格式_第4张图片

 

总结:因此可以看出%c会把空格按字符读入,其他方式不会。

 

(3)字符数组使用%s读入的时候以空格跟换行作为读入结束的标志

char str[20];
scanf("%s",str);
printf("%s",str);
return 0;

      输入:    输出:

可见是以空格或换行作为读入的结束标志的


二、printf 的使用


1、格式

      printf是输出函数其格式如下

printf("格式控制",变量名称);

   可见printf第二个参数并不需要给出变量的地址,而是直接给上变量的名称就可以了。例如下:

int n = 5;
printf("%d",n);

2、常见的数据类型的printf格式符

数据类型

格式符 举例
int %d printf("%d",n);
long long  %lld printf("%lld",n);
float %f printf("%f",fl);
double %f printf("%f",db);
char %c printf("%c",c);
字符串(char数组) %s printf("%s",str);

 

3、想要输出%或者\

    即在%前面加一个%或者\

printf("%%");
printf("\\");

 

4、三个实用的输出格式

 (1)%md

          %md可以使不足m位的int型变量以m位进行右对齐输出,其中高位用空格补齐;如果变量本身长度超过m位,则保持原样。

int a = 123,b=1234567;
printf("%5d\n",a);
printf("%5d\n",b);

输出:         

(2)%0md

          %md可以使不足m位的int型变量以m位进行右对齐输出,其中高位用0补齐;如果变量本身长度超过m位,则保持原样。

int a = 123,b=1234567;
printf("%05d\n",a);
printf("%05d\n",b);

输出:          

(3)%.mf

           %.mf是让浮点数保留m位小数输出

double d1 = 12.9786;
printf("%.1f\n",d1);
printf("%.2f\n",d1);
printf("%.3f\n",d1);

输出:

你可能感兴趣的:(C++)