C语言注意点(3)

1、需要记住的常见ASCII

'0':48   'A':65  'a':97

C语言注意点(3)_第1张图片

2、需要多组输入时的方法,EOF的本质

C语言注意点(3)_第2张图片

C语言注意点(3)_第3张图片

EOF的本质就是-1

C语言注意点(3)_第4张图片

3、define不是关键字,而是预处理命令

C语言注意点(3)_第5张图片

4、防止头文件重复引用

C语言注意点(3)_第6张图片

C语言注意点(3)_第7张图片

5、转义字符/b表示退格

转义字符总结

C语言注意点(3)_第8张图片

理论上如果在写字符的话会将最后一个字符覆盖掉。vs2022使用\b会直接删掉最后一个字符,可能是编译器的原因,而vs2013就不会删除。

C语言注意点(3)_第9张图片

6、占位符相关注意点

printf函数常用占位符

C语言注意点(3)_第10张图片

scanf函数相关占位符注意点

C语言注意点(3)_第11张图片

上⾯所有占位符之中,除了 %c 以外,都会自动忽略起首的空白字符。 %c 不忽略空白字符,总是返回当前第⼀个字符,无论该字符是否为空格。 如果要强制跳过字符前的空白字符,可以写成 scanf(" %c", &ch) ,即 %c 前加上⼀个空格,表示跳过零个或多个空白字符。

下面要特别说⼀下占位符 %s ,它其实不能简单地等同于字符串。它的规则是,从当前第⼀个非空白字符开始读起,直到遇到空白字符(即空格、换行符、制表符等)为止。 因为 %s 不会包含空白字符,所以⽆法⽤来读取多个单词,除非多个 %s ⼀起使⽤。这也意味着, scanf() 不适合读取可能包含空格的字符串,比如书名或歌曲名。另外, scanf() 遇到 %s 占位符,会在字符串变量末尾存储⼀个空字符 \0 。

scanf() 将字符串读⼊字符数组时,不会检测字符串是否超过了数组⻓度。所以,储存字符串时, 很可能会超过数组的边界,导致预想不到的结果。为了防⽌这种情况,使⽤ %s 占位符时,应该指定读⼊字符串的最⻓⻓度,即写成 %[m]s ,其中的 [m] 是⼀个整数,表⽰读取字符串的最⼤⻓度,后⾯的字符将被丢弃。

#include 
int main()
{
    char name[11];
    scanf("%10s", name);
    return 0;
}

上⾯⽰例中, name 是⼀个⻓度为11的字符数组, scanf() 的占位符 %10s 表⽰最多读取⽤⼾输⼊ 的10个字符,后⾯的字符将被丢弃,这样就不会有数组溢出的⻛险了。

C语言注意点(3)_第12张图片

你可能感兴趣的:(c语言,开发语言)