博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二维(字符)数组输入(转载)
阅读量:7131 次
发布时间:2019-06-28

本文共 785 字,大约阅读时间需要 2 分钟。

对于二维数组的输入,一般是一行一行的输入,当然也可以一个个来,但最好还是一行一行的输入。

所以一行一行的输入:

for(int i= 0;i < N;i++)

        scanf("%s",perNum[i]);

对于输入,单个输入用的是%c,而一行来输入就是%s。

而有一个情况,此时我们的输入每行都是要存18个数字,所以想法就是设二维数组的时候,列数就是18。

char perNum[100][18];

那这个时候输入输出代码:

char perNum[100][18];

int N;
scanf("%d",&N);
 
for(int i= 0;i < N;i++)
    scanf("%s",perNum[i]);
 
for(int i= 0;i < N;i++)
    printf("%s\n",perNum[i]);

代码的运行结果:

 

其中,第一行的2,是说明这个二维数组的行数。

这个时候发现,输入没问题,但输出的时候,按理来说,应该是2行18列。可是发现第一行的输出把第二行的输入也一起输出了。

这个问题在于,输出的时候,是根据\0,即换行符号判断是否要换行输出。但由于我们设定的列数才18,刚刚好只把输入给存完,这样子就没有地方存换行符(\0)。

所以这里的改进就是,把二维数组的列数至少多一位,用于存放换行符。

所以代码改为:

char perNum[100][19];//比18多一位,存放换行符

int N;
scanf("%d",&N);
 
for(int i= 0;i < N;i++)
    scanf("%s",perNum[i]);
 
for(int i= 0;i < N;i++)
    printf("%s\n",perNum[i]);

运行结果符合要求:

 

转载于:https://www.cnblogs.com/joannasblog/p/9394540.html

你可能感兴趣的文章
gogoprotobuf使用(上)
查看>>
IOS开发—IOS 8 中设置applicationIconBadgeNumber和消息推送
查看>>
HBase–调优篇
查看>>
word的多级列表&自动编号
查看>>
SSH之密钥登陆
查看>>
vmware5.1通过模版部署RHEL6.3之后网卡eth1 修改eth0 的问题
查看>>
批量上传公钥到Linux服务器
查看>>
关于日立存储更换故障硬盘
查看>>
Subversion+Apache 安装配置文档
查看>>
从程序员到技术领导者
查看>>
squid的配置及应用
查看>>
Linux的基本配置
查看>>
java语言基础
查看>>
通过weblogic自带脚本正常关闭受管理服务器方法
查看>>
关于最近很火的安卓stagefright漏洞
查看>>
iOS开发那些事-iOS网络编程同步GET方法请求编程
查看>>
pycharm,vim,items2常用快捷键
查看>>
Flask blueprint蓝图按功能模块化架构实例
查看>>
数据支撑环境的改造
查看>>
ifconfig 命令用来查看和配置网络设备
查看>>