Jade Dungeon

C语言输入输出

格式化输入/输出

pintf

格式化

常用的输出格式为:%m.pX

  • X代表转换的类型,常用的有:
    • 代表科学记数法的e
    • 代表十进制整数的d
    • 代表普通小数的f
    • 根据数的大小来决定是科学记数学是普通小数的g
  • m代表最小的整体长度,不足时补上空格。默认是右对齐,加上负号可以指定为左对齐。
  • p代表精度,具体使用按X代表的类型来决定。

scanf

存入的目标是指针,别忘记前置符号&

读取方式

  • scanf 会从左向右读取输入的字符串。
  • 如果遇到一个或多个空白字符,scanf 函数会一直读取直到遇到一个非空白字符。
  • 如果遇到一个非空白字符,scanf 函数会把它与下一个要读取的格式比较:
    • 如果匹配就存入;
    • 如果不匹配 scanf 函数会放弃对这个字符串的处理。
  • 读完了最后一个匹配的项目后,如果还有字符会留给下了一个 scanf。

整数的格式化读写

  • 无符号整数读写时
    • u表示十进制
    • o为八进制
    • x为十六进制
  • 短整数表示为在doux前加上字母h
  • 长整数表示为在doux前加上字母l
  • C99的长长整数表示为在doux前加上字母ll

输出没有办法在 printf 输出时用符号表示负的八进制或十六进制。只能用程序判断:

if (i < 0) {
	printf("-%x", -i);
} else {
	printf("%x", i);
}

浮点数的格式化读写

efg都用于读写float:

  • 只有在scanf函数中,读取double的方法在efg前加字母l
  • printf函数不加l可以同时处理float和double
  • 读写long double类型在efg前加字母L

指针类型的格式化读写

在 printf 函数中通过转换符"%p" 来显示指针指向的地址。