淘宝网站建设可信吗,建站公司哪个好,开发公司移交给物业资料说明,wordpress导航页面样式首先#xff0c;这两个函数不是C标准库中的函数#xff0c;int getch(void) //从标准输入读入一个字符#xff0c;当你用键盘输入的时候#xff0c;屏幕不显示你所输入的字符。也就是#xff0c;不带回显。int getche(void) //从标准输入读入一个字符#x…首先这两个函数不是C标准库中的函数int getch(void) //从标准输入读入一个字符当你用键盘输入的时候屏幕不显示你所输入的字符。也就是不带回显。int getche(void) //从标准输入读入一个字符键盘输入的时候屏幕显示所输入的字符。带回显。这两个函数包含在头文件conio.h中需要记住的是conio.h不是C标准库中的头文件。Micorsoft 和 Borland的C编译器提供了conio.h用来创建控制台文本用户界面。一般在Windows系统下安装了VS、VC等就可以包含conio.h头文件。但是一般在Unix、Linux系统中/usr/include/中都没有这个头文件。getch和getche在等待用户从键盘输入的时候用户按下一个键后不需要按回车程序自动往下执行。在Linux中终端输入在缺省情况下是被“一锅端”的也就是说整行输入是被一起处理的。通常这是一种人们所希望的方便的办法但它也意味着在读入数据时必须按一下回车键表示输入行结束后才能得到输入的数据。在游戏中很多都提供了“老板键”它的实现就是利用了这两个函数。其次除了getch和getche其他的都是C标准库中的头文件包含在头文件stdio.h中。int fgetc ( FILE * stream ); //从流stream中读一个字符。可以将标准输入stdin作为它的实参这时候从标准输入读取一个字符。int getc(FILE * stream); //和fgetc等效由fgetc通过宏实现。int getchar ( void ); //从标准输入stdin读入一个字符程序等待你输入的时候你可以输入多个字符回车后程序继续执行。//但getchar只读入一个字符说明:getc、getchar都是通过宏定义借助fgetc实现。如getchar的实现为#define getchar() fgetc(stdin)。char * fgets (char * str, int num, FILE *stream);//从流stream中读入最多num个字符到字符数组str中当遇到换行符时、或读到num-1个字符时停止。//自动加上\0空字符结尾char * gets ( char * str );//从标准输入stdin读取一个字符串遇到换行或结束时候终止。//不同于fgets他没有指定num所以需要注意字符数组str的大小。说明 fgets和gets之间没有宏定义的关系彼此各自有自己的实现。蠕虫病毒的实现就是函数gets的“功劳”。gets函数的任务是从流中读入一个字符串。它的调用者会告诉它把读入的字符串放在什么地方。但是gets()函数并不检查缓冲区大小如果调用者提供了一个指向堆栈的指针并且get()函数读入的字符数量超过了超过了缓冲区的空间大小get()会愉快地将多出来的字符继续写入到堆栈中这就覆盖了堆栈中原来的内容。如main(){charline[512];//在程序的堆栈上分配512个字符的空间...gets(line);//蠕虫病毒的入口可以将恶意代码通过多出来的数据写入堆栈}建议不要用getch和getche因为它们不是C标准库中的函数。用它们写出的程序可移植性差不同的编译器不保证可以包含conio.h。建议用fgets函数彻底替代gets函数。另外绝大多数的这些get函数都有对应的put版本。int fputc ( int character, FILE * stream );int putc ( int character, FILE * stream ); //通过宏定义和fputc实现int putchar ( int character ); //通过宏定义实现#define putchar(c) fputc(c, stdout)int fputs ( const char * str, FILE * stream );int puts ( const char * str );说明两者之间无宏定义实现关系。puts(const char *str)近似等效于fputs(cosnt char *str, stdout)不同点是前者还输出一个\n最后关于EOFEOF是在stdio.h文件中定义的符号常量值为-1。如fputc函数返回一个值如果输出成功则返回值就是输出的字符如果输出失败则返回一个EOF。fgetc函数读字符时遇到文件结束符函数返回一个文件结束标记EOF。如果想从一个磁盘文件顺序读入字符并在屏幕上显示可以chfgetc(fp);while(ch!EOF){putchar(ch);chfgetc(fp);}注意EOF不是可输出字符因此不能在屏幕上显示。由于ASCII码不可能出现-1因此EOF定义为-1是合适的。当读入的字符值等于-1(即EOF)时表示读入的已不是正常的字符而是文件结束符。但以上只适用于读取文本文件的情况。现在ANSI C已经允许用缓冲文件系统处理二进制文件而读入某一个字节中的二进制数据的值有可能是-1而这又恰好是EOF的值。这就出现了需要读入有用数据却处理为“文件结束”。feof(fp) 用来测试fp所指向的文件当前状态是否是“文件结束”。如果想顺序读入一个二进制文件数据可以while(!feof(fp)){cfgetc(fp);...}posted on 2010-07-26 17:34 何克勤 阅读(362) 评论(0) 编辑 收藏 所属分类: C/C