| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 803 人关注过本帖
标题:getchar()问题
取消只看楼主 加入收藏
xDevil
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-8-31
收藏
 问题点数:0 回复次数:3 
getchar()问题

为什么在while(1)中getchar()可以接受字符串?望高手指点。。
#include<stdio.h>
main()
{
char c;
while(1)
{
c=getchar();
printf("%c",c);
}

}

搜索更多相关主题的帖子: getchar 
2007-11-18 16:48
xDevil
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-8-31
收藏
得分:0 

在一次循环中就输出c,为什么没有截断字符串而将整串字符输出来?

2007-11-18 17:09
xDevil
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-8-31
收藏
得分:0 
以下是引用nuciewth在2007-11-18 17:13:00的发言:
其实是接收一个字符,只是有循环,所以一直在接收.

接收的时候循环起作用吗?程序是读取所有字符串然后一次输出的啊。那个printf为什么可以输出字符串,不是%c吗?迷惑中。

2007-11-18 17:17
xDevil
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-8-31
收藏
得分:0 
以下是引用learnerboy在2007-11-18 17:16:52的发言:
那输出的好像不是字符串吧,如果你在printf("%c\t",c);你看看是不是了!!你没有写格式符所以它输出来就像是个字符串一样!

明白了。
在第一次getchar()时,数据存入缓冲区中,然后输出一个字符。
继续循环,但缓冲区还有数据,然后继续输出字符,直到缓冲区中的数据输出完毕。
继续循环,可以getchar()了.
include<stdio.h>
main()
{
char c;
while(1)
{
c=getchar();
printf("#");//sign!
printf("%c",c);
}

}

[此贴子已经被作者于2007-11-18 17:38:45编辑过]

2007-11-18 17:35
快速回复:getchar()问题
数据加载中...
 
   



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

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