| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4169 人关注过本帖
标题:为什么会出现乱码?
只看楼主 加入收藏
Eg_a
Rank: 1
等 级:新手上路
帖 子:66
专家分:9
注 册:2011-4-23
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:18 
为什么会出现乱码?
为什么会出现乱码?而且貌似我还没让他回车换行- -
printf函数输出正确,可恶的puts。。。
搜索更多相关主题的帖子: 而且 
2011-10-16 04:35
Eg_a
Rank: 1
等 级:新手上路
帖 子:66
专家分:9
注 册:2011-4-23
收藏
得分:0 
呃呃呃,怎么上不了图?上代码吧- -
程序代码:
#include<stdio.h>
void main(){
    int i,j;
    char c[5]={"*****"};
    for(i=0;i<5;i++){
        printf("    ");
        for(j=0;j<i;j++)
            printf(" ");
        puts(c);
    }
}



[ 本帖最后由 Eg_a 于 2011-10-16 04:36 编辑 ]
2011-10-16 04:35
Eg_a
Rank: 1
等 级:新手上路
帖 子:66
专家分:9
注 册:2011-4-23
收藏
得分:0 
回复 楼主 Eg_a
再次出问题,为什么结果会多出来个?应该是乱码,谁帮看看,解释下,这两个毛病是否都是与内存有关?应该怎么改呢?
程序代码:
#include<stdio.h>
void main(){
    char s1[80],s2[80];
    int i;
    printf("input s2:");
    gets(s2);
    for(i=0;i<80&&s2[i]!='\0';i++)
        s1[i]=s2[i];
    s1[i+1]='\0';
    printf("\ns1:%s\n",s1);
}
2011-10-16 06:32
chimeixing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:14
专家分:130
注 册:2010-10-19
收藏
得分:0 
我电脑上正常啊?楼主换个编译器试试?
我用的win-tc.

菜鸟
2011-10-16 07:18
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 3楼 Eg_a
你把六个字符的字符串放到可以五个字符的数组

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-10-16 09:58
劣质数轴
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:163
注 册:2010-11-19
收藏
得分:0 
*****后面还要有一个'\0',作为字符串结束的标志……
你定义数组的时候没有给'\0'分配到空间……puts检测不到'\0',就会在内存上一直往后读,直到碰巧出现'\0'的地方,所以*****后面是乱码

3L,当s2[i] == '\0'的时候就已经跳出循环了,所以应该给s1[i]赋'\0'而不是给s1[i+1]赋'\0'……
2011-10-16 13:42
竹叶
Rank: 2
等 级:论坛游民
帖 子:12
专家分:16
注 册:2011-9-12
收藏
得分:0 
新人遇见
可能 定义的数组只有5个元素的空间 ;而赋给他的是一个字符串“*****”
是要有6个元素的空间 ;因为字符串要有结束标志“/0”所以造成了错误
2011-10-16 18:25
Eg_a
Rank: 1
等 级:新手上路
帖 子:66
专家分:9
注 册:2011-4-23
收藏
得分:0 
回复 5楼 A13433758072
大哥,这是两个程序的代码,五个是上面的,下面的80个元素,不存在超出数组的部分
2011-10-17 00:50
Eg_a
Rank: 1
等 级:新手上路
帖 子:66
专家分:9
注 册:2011-4-23
收藏
得分:0 
回复 7楼 竹叶
。。。。。。。可能咱们学的不一样,我学的就是这样的- -
2011-10-17 00:52
Eg_a
Rank: 1
等 级:新手上路
帖 子:66
专家分:9
注 册:2011-4-23
收藏
得分:0 
回复 6楼 劣质数轴
我给他设定了八十个元素的空间,我只输入了五个而已第六个就是结束符了
2011-10-17 00:53
快速回复:为什么会出现乱码?
数据加载中...
 
   



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

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