| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 815 人关注过本帖, 1 人收藏
标题:帮忙看一下这个简单程序
取消只看楼主 加入收藏
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
结帖率:66.67%
收藏(1)
已结贴  问题点数:20 回复次数:4 
帮忙看一下这个简单程序
#include<stdio.h>
main()
{
    char str[20],str1[20];
    scanf("%s,%s",str,str1);
    printf("%s,%s",str,str1);
}
用VC++测试,为什么老师输出无效字符!!!
搜索更多相关主题的帖子: 老师 
2010-12-20 17:05
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

vc6.0测试的
2010-12-20 17:35
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
收藏
得分:0 
以下是引用xinjinlong在2010-12-20 17:15:44的发言:

请问你是怎么输入的?
输入时应该这样:1233,2222
你scanf中间有,
不行,中间,也会被当做字符输入!
2010-12-20 17:40
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
收藏
得分:0 
以下是引用zhaoya881010在2010-12-20 17:43:38的发言:

我不是给你一个程序了吗,出现乱码是因为你声明字符数组的时候没有初始化里面的都是随机值,用static 可以自动初始化变量为‘\0’
为什么末尾多了一个,
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-12-20 18:41
wubihai7
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2010-3-4
收藏
得分:0 
以下是引用xiaomarn在2010-12-20 18:31:28的发言:

#include
main()
{
    printf("%c%c\n",0xcc,0xcc);
}
出现汉字的原因
将两个字符解析成一个宽字符了(还是UNICODE?)
出现的结果是由于,str位于高地址,str1位于低地址
而str1里面全是0xcc,没有结束符'\0',所以先打印了str,然后打印str1时,将两个字节内容打印成一个汉字(于是有十个汉字),但没有结束符,继续打印后面的str(高地址,注意会有地址对齐,但刚好str1长20,被4整除,所以str位于20位置,紧接str1之后),直到遇到str里面的'\0',结束(这个问题119应该理解深刻吧,hehe)
对该答案非常满意,谢谢了哈!
2010-12-21 12:38
快速回复:帮忙看一下这个简单程序
数据加载中...
 
   



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

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