scanf读取字符数组的注意点

起因:scanf的%c格式可以读取空格回车

读取中间无空格隔开的二维字符数组时

#include<bits/stdc++.h>
using namespace std;
char mp[10][10]; 
signed main()
{
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++){
			scanf("%c",&mp[i][j]);
		}
		getchar();//吸收回车,不然会被scanf读取 
	}
    puts("");
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++){
			printf("%c ",mp[i][j]);
		}
		puts("");//换行 
	}
	return 0; 
}

 输入与输出

读取中间有空格隔开的二维字符数组时

#include<bits/stdc++.h>
using namespace std;
char mp[10][10]; 
signed main()
{
	for(int i=1;i<=3;i++){
		int j; 
		for(j=1;j<=2;j++){
			scanf("%c ",&mp[i][j]);//%c后记得接空格
		}
		scanf("%c",&mp[i][j]);
		getchar();//吸收回车,不然会被scanf读取 
	}
    puts("");
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++){
			printf("%c ",mp[i][j]);
		}
		puts("");//换行 
	}
	return 0; 
}

输入与输出 

猜你喜欢

转载自blog.csdn.net/weixin_61725823/article/details/130913544