你真的了解C语言得输入和输出吗?

简介: 你真的了解C语言得输入和输出吗?

C语言哪些那不知道的输入和输出!!!

 输入和输出就是简单的库函数scanf和printf,如果我们只会简单的输入输出那就有点太逊了。我们有时候在有些网站上OJ一些题目是经常会遇到一些特殊的输出。例如:保留小数点后几位,输出指定的宽度并指定是补0还是空格;让你右对齐;又或者是只让你输出一个字符串的前几位;

每次遇到你都会问度娘,今天在这我全部教会给你。

一.字符以及字符串的输入与输出

 字符和字符串的输入分别用%c和%s,输出很简单,今天我们主要是输出;

 %m.ns用于字符串的输出形式。m 规定输出项的总宽度、规定只输出字符串中前n个字符。若输出项的实际长度小于m,则左边补充空格否则,m不起作用。若输出项的实际长度小于:n,则不起作用;否则,只输出左边n个字符,多余的字符被截断。

例:

int main()
{
  printf("%2s,%8s,%3.8s,%.3s\n", "study", "study", "study", "study");
  return 0;
}


解析:1.由于2小于字符的总长度5所以不起作用


          2.8大于字符串的长度默认是空格补充(如果想要补充0,只需要在8前面加0)


          3.由于3小于字符串的总长度所以不起作用,又因为8大于字符串的总长度所以可以全部打印


          4.只输出字符串的前三位

05b946080fd44284a6896719f8f90f4b.png

如果我们想要按左对齐只需要在前面加个'-'就行

int main()
{
  printf("%-2s,%-8s,%-3.8s,%-.3s\n", "study", "study", "study", "study");
  return 0;
}


c8177adbe2354d22b843ace2a4e6bab8.png

二.浮点型的输入与输出


 浮点型的输入和输出都是%f或%lf;


 %m.nf用于实型数据输出形式,能自动进行末位小数的四舍五入。其中,m规定输出项的总宽度,n规定输出的小数位数(默认输出6位小数)。

①m的宽度大于实际数据位数,右对齐,左补空格;否则,m不起作用,输出宽度9位浮点数,小数位为3,小数点1位,整数1位,右对齐,左补4个空格)。

②如果在m.n之前加一个0,左边多余的空位用0而不是用空格填充,

③如果在m.n之前加一个“一”,则按左对齐的方式输出,

④ 如果n小于实际小数位数,则自动在结束位之后对数值四舍五入。

例:

int main()
{
  float a = 3.1415926;
  printf("%f\n", a);
  printf("%.7f\n", a);
  printf("%.3f\n", a);
  printf("%9.3f\n", a);
  printf("%09.3f\n", a);
  printf("%-9.3f\n", a);
  return 0;
}


解析:1.正常输出一个浮点型只可以输出小数点后6位;

          2.如果我们想全部输出就是输出小数点后7位,但是由于浮点型在内存中的存储方式会导致精度的丢失;

          3.输出小数点后3位(但是会四舍五入)

          4.保留后三位并且输出宽度为9(输出宽度包括'.'),默认补空格

          5.保留后三位并且输出宽度为9(加0表示将默认的补空格改为补0)

          6.保留后三位并且输出宽度为9并左对齐

ac7215b090e242f2a07dfd8f20f7d37e.png

三. 整形的输入输出

整形的输入和输出包括%d(%i)(按十进制),%x(按十六进制),%o(按八进制),%u(按无符号位输出);

(1) %m.nd 用于整型数据输出形式,其中 m 指定输出项的总宽度,m为最小有效位数。

① 如果输出项的实际位数小于m,则左端补足空格直至m位;否则,m不起作用,即

按实际位数输出,

②如果在 m.n 之前加一个0,则在小于输出项实际位数的情况下,左边多余的空位用0而不是用空格填充,

③如果输出项的实际有效位数小于n,则左边补足0直至n位;否则,n不起作用,即按实际位数输出

④如果在m,n之前加上一个'-',则左对齐输出


int main()
{
  int a = 10;
  printf("%d\n", a);
  printf("%4d\n", a);
  printf("%5.3d\n", a);
  printf("%04d\n", a);
  printf("%-4d\n", a);//左对齐
  printf("%x\n", a);
  printf("%#x\n", a);
  printf("%#X\n", a);
  printf("%o\n", a);
  printf("%#o\n", a);
  return 0;
}

解析:1.按十进制输出a

          2.输出宽度为4(默认补空格)

          3.输出宽度为5并且输出三个有效数字(有效数字不够补0)

          4.输出宽度为4(补0)

          5.输出宽度为4并且左对齐

          6.按十六进制输出

          7.按十六进制输出并且输出十六进制的标志(x小写)

          8.按十六进制输出并且输出十六进制的标志(X大写)

          9.按八进制输出

          10.按八进制输出并且输出八进制的标志

de1eaaa610c04b5e874f4954d8f0b8f9.png

最后整形的输入输出没有说%u,在这里给大家个题目做做,先卖个关子!!!

int main()
{
  int i = -1;
  printf("%u\n", i);
  //输出值为多少?
  return 0;
}


以上就是C语言所能看到有要求输出的所有内容,如果有不同的意见欢迎大家在评论区多多交流和指正;

相关文章
|
6月前
|
存储 C语言
C语言数据的输入举例
C语言数据的输入举例
56 1
|
5月前
|
存储 编译器 C语言
三:《初学C语言》— 输入与输出
在C语言中,当我们需要给变量输入值时就可以使用输入函数scanf(),将键盘输入的值放在变量里;如果需要给变量的值输出在屏幕上的时候可以使用输出函数printf()
61 9
三:《初学C语言》—  输入与输出
C4.
|
6月前
|
C语言
C语言数据的输入与输出
C语言数据的输入与输出
C4.
81 0
|
4月前
|
存储 C语言
C语言6 字符串输入和格式输入函数
C语言6 字符串输入和格式输入函数
57 0
|
编译器 C语言
23 C语言 - 输入 & 输出
23 C语言 - 输入 & 输出
52 0
|
6月前
|
存储 安全 C语言
C语言中的输入与输出
C语言中的输入与输出
105 0
|
6月前
|
Unix 编译器 Linux
C语言多组输入
C语言多组输入
208 0
|
6月前
|
存储 C语言
C语言的数据的输入举例
C语言的数据的输入举例
31 2
|
6月前
|
编译器 C语言
C语言2🔥:常量,输入与输出
C语言2🔥:常量,输入与输出
53 0
|
6月前
|
存储 C语言
C语言——数据输入和输出
C语言——数据输入和输出
44 0