可能涉及输入输出流的问题
请教一个问题,程序如下:
#include "stdio.h"
#include "conio.h"
main()
{
int c;
clrscr();
while ((c=getchar())!=EOF)
putchar(c);
getch();
}
根据程序流程,我原先认为运行结果是:输入一个字符,然后紧接着输出一个字符并判断是否为EOF,如果不是,继续输入一个,输出一个。但实际结果是:一直输入字符直到EOF,然后在把输入的字符一并输出。这是什么原因呢?我觉得有可能涉及输入输出流的问题,但我不是很懂这一块,望指教,谢谢!!!
----------------解决方案--------------------------------------------------------
当你输入字符时,字符被逐个送到输入缓冲区,当遇到回车时才被全部送出(行缓冲)
被putchar(c);依次输出!
当遇到EOF时出循环!
----------------解决方案--------------------------------------------------------
感谢指点,谢谢!!!
----------------解决方案--------------------------------------------------------
getchar
函数原型: int getchar(void)
用途:从标准输入流读取一个字符并回显,读到回车符时退出
返回值:读取的字符
putchar
函数原型:int putchar(int ch)
用途:把字符ch写到标准流stdout中去
返回值:EOF-操作失败,ch值-操作成功
----------------解决方案--------------------------------------------------------
回复:(xiaxia421)getchar函数原型: int getchar(vo...
以下是引用xiaxia421在2006-6-4 23:57:00的发言:
getchar
函数原型: int getchar(void)
用途:从标准输入流读取一个字符并回显,读到回车符时退出
返回值:读取的字符
putchar
函数原型:int putchar(int ch)
用途:把字符ch写到标准流stdout中去
返回值:EOF-操作失败,ch值-操作成功
getchar
函数原型: int getchar(void)
用途:从标准输入流读取一个字符并回显,读到回车符时退出
返回值:读取的字符
putchar
函数原型:int putchar(int ch)
用途:把字符ch写到标准流stdout中去
返回值:EOF-操作失败,ch值-操作成功
你的答复是错的。事实上,它们都是参数宏,详见stdio.h
----------------解决方案--------------------------------------------------------