2025 9.25
多种数据解法,可以用#或三次CtrlZ打断int main() { int a 0; int b 0; while (scanf(%d %d, a, b) 2) { int c a b; printf(%d\n, c); } return 0;占位符中%c不会忽略空白字符它总是返回当前第一个字符如果要强制跳过字符前的空白字符可以int main() { int a 10; char ch0; scanf( %c, ch); printf(%cxxxxx\n, ch); return 0; }在%c前加上一个空格表示跳过零个或多个空白字符 abcaxxxxx%s不能简单地等同于字符串int main() { char arr[10] { 0 }; scanf(%s,arr); printf(%s\n, arr); return 0; }规则是从当前第一个非空白字符开始读起直到遇到空白字符为止,当输入中间有空格的两个字符串时比如这里输入 abc def,则实际打印出abc可以看出%s不会包含空白字符所以无法用来读取多个单词除非多个%s一起使用:int main() { char arr1[10] { 0 }; char arr2[10] { 0 }; scanf(%s %s,arr1,arr2); printf(%s\n, arr1); printf(%s\n, arr2); return 0; }另外scanf()遇到%s占位符会在字符串变量末尾存储一个空字符\0