参考自:https://www.douban.com/note/220299804/
scanf函数的返回值有三种情况:
(1)第一种就是返回一个正整数,表示输入成功元素的个数。
(2)第二种如果返回的值为0,代表输入不匹配,没有正确输入任何值,所以有了下面的代码。
(3)第三种返回-1(EOF)也就是输入流结束。Windows:CTRL + Z表示输入结束,Linux:CTRL + D。
printf函数的返回值为输出元素的个数。printf("%d\n", 1); //2
#include<stdio.h> #include<string.h> int main() { int num[100]; for(int i = 0; i < 10; i++) //Input:1 2 3 4 ? ? 6 7 8 9 0 { if(scanf("%d", &num[i]) == 0) { scanf("?"); num[i] = -1; } } for(int i = 0; i < 10; i++) { if(i != 0) printf(" "); printf("%d", num[i]); } printf("\n"); //Output:1 2 3 4 -1 -1 6 7 8 9 0 return 0; }
再加上一个:
二维数组在内存当中的存储是连续的,所以有下面代码。
#include<stdio.h> #include<string.h> int main() { int len; char str[10][1]; scanf("%s", str[0]); //abcde len = strlen(str[0]); printf("%d", len); //5 因为二位数组的存储在内存当中是连续的 puts(str[0]); //abcde return 0; }
时间: 2024-12-26 00:16:02