| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1932 人关注过本帖
标题:字符数组输入输出的疑问
只看楼主 加入收藏
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
结帖率:90.32%
收藏
已结贴  问题点数:20 回复次数:6 
字符数组输入输出的疑问
#include"stdio.h"
#include"stdlib.h"
main(){
    char a[3][5];
    scanf("%c%c%c",&a[0],&a[1],&a[2]);
    printf("%c\t%c\t%c\n",a[0],a[1],a[2]);
    system("pause");
}
这段代码编译后为何有这样的错误?
图片附件: 游客没有浏览图片的权限,请 登录注册

%c不是应该需要字符型吗?为何需要int型?

搜索更多相关主题的帖子: include system 
2017-05-26 23:38
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:4 
printf("%c\t%c\t%c\n",a[0],a[1],a[2]);//a[0],a[1],a[2]在你的代码中都是char *。。。

%c 是将一个数据解释为 字符。
犹如 %x 将一个数字解释为 十六进制。

[此贴子已经被作者于2017-5-26 23:46编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-26 23:40
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:4 
哇~cl命令~~~警告还带中文~~感觉棒棒的哦~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-26 23:47
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:4 
char a[3][5];
字符数组a的元素是a[0][0]、a[0][1]、a[0][2]......
输入:scanf("%c%c%c",&a[0][0],&a[0][1],&a[0][2]);
输出:printf("%c\t%c\t%c\n",a[0][0],a[0][1],a[0][2]);
2017-05-27 05:07
寒墨轩
Rank: 2
等 级:论坛游民
帖 子:35
专家分:63
注 册:2017-5-15
收藏
得分:4 
是不是因为字符的长度已超出范围,须转化为整形
2017-05-27 09:44
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
收藏
得分:4 
#include"stdio.h"
#include"stdlib.h"
int main(){
    char a[3][5];
    scanf("%c%c%c",a[0],a[1],a[2]);
    printf("%c  %c  %c\n",a[0][0],a[1][0],a[2][0]);
   
    system("pause");
}

跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-05-27 11:06
何小达
Rank: 2
等 级:论坛游民
威 望:1
帖 子:24
专家分:70
注 册:2017-5-25
收藏
得分:4 
#include"stdio.h"
#include"stdlib.h"
main(){
    char a[3][5];
    scanf("%c%c%c",&a[0],&a[1],&a[2]);//首先你要知道,你定义的是二维数组,这a[0]就已经是个地址了,你要取的话也是&a[0][0],要不就是直接a[0]就行,其余的也一样
    printf("%c\t%c\t%c\n",a[0],a[1],a[2]);//输出的话你要*a[0]、*a[1]、*a[2],因为你是单个字符输出,这a[0]是地址,所以不行。
    system("pause");//其次就是你这%c%c%c三个%c如果你输入值得话就不能用空格隔开,输入空格的话空格也算是一个字符,它的ascii值是32
}
2017-05-27 19:39
快速回复:字符数组输入输出的疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019737 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved