网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月13日
漏签
0
天
c语言吧
关注:
799,021
贴子:
4,353,800
看贴
图片
吧主推荐
视频
游戏
11
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
新手关于一个char变量输入输出多个字符的问题
只看楼主
收藏
回复
一超flame
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
char a;
a=getchar();putchar(a);
这里输入无论多少字符如adejfgvn sdf,回车输出都是最后一个字符。
而中间加一句while语句。
char a;
a=getchar();
while(a!='\n'){
putchar(a);a=getchar();
}
putchar(a);
这个代码输入多个字符都能全部输出,而不是一个char变量只输出一个字符了。求解
晓超29
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
getchar只是输入一个字符啊,肯定最后只输出一个字符
你输入的属于字符串了,要用到字符数组了
晓超29
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
改成gets()就行了
一超flame
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
可是我按下面代码getchar也可以输出一个字符串
游刃有_鱼
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
char a[];
晓超29
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你按下面加了一个循环咩
要是前面是scanf的话,他就以空格作为结束了
get是以回车作为结束的
一超flame
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我就是觉得一个char也能输出字符串好神奇
他的内存占用应该也只有一字节吧
晓超29
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这又不是共用体
猩猩点天灯
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你可以试试
char a;
a=getchar();putchar(a);
a=getchar();putchar(a);
a=getchar();putchar(a);
a=getchar();putchar(a);
a=getchar();putchar(a);
while(1);
再试试
这下可以出来前5个字符了吧,
因为putchar一次出来一个字符,而如果是之前你那样加循环的话相当你输出了多少个字符,就会循环多少次putchar,所以输出就好像是字符串一样。其实只是putchar重复了很多次而已
杂烩饭君great
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
在C语言中,'\n'定义为回车字符。在不回车的时候,一直读入一个字符,直到回车结束。
你这里,就是一个循环。 输入字符一直循环,直至按下回车,结束字符输入动作,执行while循环
九又四分之三
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼上正解,这里存在编译器的代码优化,具体优化成什么样了,也不太清楚。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示