标题:无论怎么严格按照格式控制串来输入,怎么输出总是多了后面的乱码的?
只看楼主
tm00
Rank: 2
等 级:论坛游民
帖 子:23
专家分:20
注 册:2016-10-29
结帖率:100%
已结贴  问题点数:20 回复次数:5 
无论怎么严格按照格式控制串来输入,怎么输出总是多了后面的乱码的?
int main(){
     char a[20],b[20],c[20],d[20];
     printf("请输入:\n");
     scanf("%s%s%s,%s",a,b,c,d);
     printf("%s %s %s %s",a,b,c,d);
     printf("\n");
     system("pause");
     return 0;
 }
怎么输出总是多出后面的乱码呢

搜索更多相关主题的帖子: system return 
2016-11-07 16:35
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
得分:5 

能不能看懂?变量d根本什么都没读到。我这里因为d本身正好是"\0"所以没有输出,题主的环境。。。换个环境估计结果又不一样。
至于解决方法。。首先得看题主是不是非要这个逗号作为字符串的分隔符,如果是请百度“scanf %[]”

φ(゜▽゜*)♪
2016-11-07 16:40
tm00
Rank: 2
等 级:论坛游民
帖 子:23
专家分:20
注 册:2016-10-29
得分:0 
回复 2楼 书生牛犊
我想看看有非格式字符的情况下,输入有什么影响,肯定是要有逗号或别的非格式符号了。现在情况是无论我是刚刚输入合适足够的字符还是多输入,运行都会有后面这些乱码出现,搞不明白是怎么回事。
2016-11-07 17:02
Ted_Ming
Rank: 2
等 级:论坛游民
帖 子:15
专家分:35
注 册:2016-11-2
得分:5 
, 由此可知 d 没得到输入
2016-11-07 17:28
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
得分:5 
scanf("%s%s %[^,],%s",a,b,c,d);按照原来的输入试试。
2016-11-07 20:13
tm00
Rank: 2
等 级:论坛游民
帖 子:23
专家分:20
注 册:2016-10-29
得分:0 
回复 4楼 Ted_Ming
为什d没得到输入,要怎么样才得d得到输入?
2016-11-07 22:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470839-1-1.html




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

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