当前位置: 代码迷 >> C语言 >> [求助]又有问题请教..
  详细解决方案

[求助]又有问题请教..

热度:180   发布时间:2007-01-21 16:43:22.0
[求助]又有问题请教..
下面这个程序为什么我去掉第二个 c=getchar() 就会不断的出现第一个字符..
还有就是getchar() 不是只能输入一个字符吗?为什么可以输入字符串..看不出跟循环结构有什么关系噢..!
再次谢谢高手们了..


#include <stdio.h>
main()
{
int c;
c=getchar();
while(c!='\n')
{
putchar(c);
c=getchar();
}
}
搜索更多相关的解决方案: include  字符串  

----------------解决方案--------------------------------------------------------
以下是引用起点线在2007-1-21 16:43:22的发言:
下面这个程序为什么我去掉第二个 c=getchar() 就会不断的出现第一个字符..
还有就是getchar() 不是只能输入一个字符吗?为什么可以输入字符串..看不出跟循环结构有什么关系噢..!
再次谢谢高手们了..


#include <stdio.h>
main()
{
int c;
c=getchar();
while(c!='\n')
{
putchar(c);
c=getchar();
}
因为最后c=getchar();将c重新赋值了 这样才能跳出while循环
没有c=getchar();的话,while循环条件一直成立 所以一直输出

----------------解决方案--------------------------------------------------------

如果用指针来指向它,就可以输入字符串了


----------------解决方案--------------------------------------------------------
虽然可以输入字符串
但它只截取第一个字符
其他字符溢出了
----------------解决方案--------------------------------------------------------

非常感谢2楼的大哥.. 受教了..


----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{
int c;

while((c=getch())!='\n')
{
putchar(c);
}
}

[此贴子已经被作者于2007-1-22 15:49:08编辑过]


----------------解决方案--------------------------------------------------------
c=getch() 从键盘读入一个字符但不回显赋给c
c=getche() 从键盘读入一个字符并回显赋给c
对于下面的语句:
void main()
{
char c;
while((c=getchar())!='\n');
printf("%c",c);
printf("\n\n");
}
来说
c=getchar() 等待键盘输入,直到按回车确认结束,并回显回车前输入的所有字符,但只有第一个字符作为函数的返回值,未被提取的仍保留在I/O流中.没调用一次读最近的一个字符,同时把它释放,直到不满足循环条件.
----------------解决方案--------------------------------------------------------
  相关解决方案