| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1992 人关注过本帖
标题:C语言字符数组赋值问题?急需请高手帮忙。
只看楼主 加入收藏
llwangaust
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
C语言字符数组赋值问题?急需请高手帮忙。
本意是想“通过输入提示,依次输入5个字符,然后将这5个字符赋值给字符数组”,不知道下述的程序问题出在哪里了??
请高手帮我解答下,在此表示非常感谢。

以下是源程序:

#include<stdio.h>
void main(){
int i;
char b[5];

for(i=0;i<5;i++)
{
 printf("please input a char:\n");
  scanf("%c",&b[i]);
}

for(i=0;i<5;i++)
 printf("%5c",b[i]);

printf("\n");
}
  
 



注:若将数组b[5]改为int类型,这个程序运行结果就是正确的,但是定义为char类型时,运行就出错,百思不得其解!
搜索更多相关主题的帖子: C语言 源程序 
2011-05-18 10:20
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:5 
楼主的程序没有错,楼主可以在scanf后面加一个getchar();
2011-05-18 10:23
llwangaust
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-18
收藏
得分:0 
回复 2楼 hjywyj
加了getchar就能在输入一个字符后再出现一条提示输入语句,并能正确赋值了,非常感谢。只是不知道为什么需要加上getchar呢,
2011-05-18 10:46
jasonrenest
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2010-8-24
收藏
得分:5 
printf("please input a char:\n");
  scanf("%c",&b[i]);
这个地方的scanf("%c",&b[i]);这一句写两边就解决了
2011-05-18 10:52
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
char b[5];
scanf("%5s",b);
printf("%s\n",b);

[ 本帖最后由 ansic 于 2011-5-18 12:35 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-18 12:34
为了学好C
Rank: 1
等 级:新手上路
帖 子:52
专家分:8
注 册:2010-4-3
收藏
得分:5 
回复 3楼 llwangaust
scanf输入的时候都是放在缓冲区里面的,然后再去取,而你在输入的时候,要么是用空格或者换行把两个输入的数据隔开,而空格和换行本身也是一个字符,下次循环的时候机会把他当成你输入的字符接收进来。。可以在scanf(" %c",%c)中加个空格,或者scanf后面加上getch()、getchar(),或者清除缓冲区-在scanf后面加上fflush(stdin)
2011-05-18 13:32
快速回复:C语言字符数组赋值问题?急需请高手帮忙。
数据加载中...
 
   



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

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