C++ 盲点笔记(一)

字符

转义字符

转义字符 含义 ASCII码值
\0 空字符(字符串的结束标志) 0
\a 响铃(错误音效) 7
\t 水平制表符 9
\n 换行符 10
\“ 双引号 34
\‘ 单引号 39
\\ 反斜杠 92
\ddd 八进制表示的字符 *
\xhh 十六进制表示的字符 *

例:

1
2
'\043' -> 八进制为43的字符 -> 十进制为35的字符 -> '#'
'\x43' -> 十六进制为43的字符 -> 十进制为67的字符 -> 'C'

ASCII 码

大致顺序:数字 -> 大写字母 -> 小写字母

‘0’ (48) - ‘9’ (57)

‘A’ (65) - ‘Z’ (90)

‘a’ (97) - ‘z’ (122)

完整码表请参考:ASCII 表

输入输出

getchar() 函数

getchar() 用于读取下一个可用的字符,并将其作为整数返回。

如果读到文件结束或者发生读取错误,则返回 EOF (-1).

常用方法:

1
2
3
4
char c;
while ((c = getchar()) != EOF) {
// 一些操作
}

gets() 函数

gets() 用于读取一行字符串,并将读取的字符存储到指定的字符数组中。

换行符 \n 不会被存储到数组中,但在读取过程中会被消耗掉。读取完成后,会在数组末尾添加一个空字符 \0 以终止字符串。

如果遇到文件结束符或读取错误,返回 NULL.

常用方法:

1
2
3
4
char str[100];
while (gets(str) != NULL) {
// 一些操作
}

cin 语句

cin 语句用于读取输入,并将其转换为指定类型的值。

若缓冲区中第一个字符是分隔符,cin 会将其忽略并清除,继续读取下一个字符,

但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin 不做处理。

常用方法:

1
2
3
4
int x;
while (cin >> x) {
// 一些操作
}

cin.getline() 函数

类似于gets().

常用方法:

1
2
3
char str[100];
cin.getline(str, 100); // 默认以'\0'为截止符
cin.getline(str, 100, 'a'); // 以'a'为截止符

cout 常用控制符

控制符 功能
*dec 十进制输出
hex 十六进制输出
oct 八进制输出
setprecision(n) 设置实数的精度
setbase(n) 设置整数的基数(只能为 8, 10 或 16)
setfill(c) 设置填充字符
setw(n) 设置字段宽度
boolalpha 把 true 和 false 输出为字符串
*noboolalpha 把 true 和 false 输出为数字
left 左对齐输出
*right 右对齐输出
internal 内部对齐输出
fixed 固定小数位数输出
scientific 科学计数法输出
endl 换行并刷新缓冲区

注意:

  • *的控制符表示默认生效。
  • setw 只对其后的第一个输出项有效。
  • internal符号位左对齐数值右对齐,中间由填充字符填充。
  • setprecision 默认代表有效数字,在以 fixedscientific 形式输出时代表小数位数
  • endl 不是一个字符,它等价于 putchar('\n')fflush(stdout).

C++ 盲点笔记(一)
https://blog.sugarmgp.icu/2024/11/07/cpp-note-ep1/
作者
SugarMGP
发布于
2024年11月7日
许可协议