一. scanf()
1.scanf(“%c”,&c)
#include<stdio.h>
int main(){int i,j;char a[10][10];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%c",&a[i][j]);printf("----------\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%c",a[i][j]);printf("\n");}return 0;
}
输入的其实是 :123\n456\n789\n
输出的是: 123 \n \n45 \n 6\n7 总的说这个可以获取空格和换行
2.scanf("%s",s)
#include<stdio.h>
int main(){int i,j;char a[10][10];for(i=0;i<3;i++)scanf("%s",a[i]);printf("----------\n");for(i=0;i<3;i++)printf("%s\n",a[i]);return 0;
}
这个获取空格或换行相当于结束一行字符串输入,将输入下个字符串
二.gets()
#include<stdio.h>
int main(){int i,j;char a[10][10];for(i=0;i<3;i++)gets(a[i]);printf("----------\n");for(i=0;i<3;i++){puts(a[i]);printf("\n");}return 0;
}
发现gets()只遇到换行才结束,遇到空格将保留下来,换行也保留下来了
三.getchar()
#include<stdio.h>
int main(){int i,j;char a[10][10];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i][j]=getchar();printf("----------\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%c",a[i][j]);printf("\n");}return 0;
}
和第一个一样,也是空格和换行都保留下来.
总结:虽然简单,但过个年又忘记了,还是记录下来比较好,下次在看就方便多了.gets()会保留空格和换行,scanf(“%s”,s)遇到空格或换行就结束,且不保留空格和换行,而getchar()与scanf(“%c”,c)就一样了,只是一个是字符形式一个是标准格式,都是会保留空格和换行。