gets,fgets,getchar,fgetc

2023-03-10,,

以上四个函数都是读取外部输入的函数。可以使stdin,也可以是文件。以下都是在C语言中的应用

关于gets和fgets都能够读取一行,一行结束的标志是“回车”。都有弊端gets(s),其中s为字符型数组,假设char s[3];那么即使我输入hello,s中仍然能够盛放得下,这是不对的!因为C语言不禁止程序读写“非法内存”。

fgets也是如此,假设char s[3];文件描述符fin指向的文件内容为hello。fgets(s,6,fin);s虽然只有三个字节空间,但仍然能盛放hello和最后的字符串结束标志'\0'。这也是不对的!需要注意的是,要想读取完整的hello,fgets中的第二个参数需要填6,而不是5,因为这个函数会自动为字符串预留一个'\0',如果参数为5,读取返回值就为hell\0。

以上两者返回值均为读取到的字符串,好处就在于他们对空格,制表符不敏感(这一点强于scanf)。

关于getchar,用法c=getchar();默认从标准输入中读取一个输入的字符。

关于fgetc,用法和getchar类似,不过可选输入来源是fgetc(stdin)(标准输入),fgetc(fin)(文件输入)。返回值仍然是读取的字符。如果读到文件末尾也就是EOF,返回值为-1

gets,fgets,getchar,fgetc的相关教程结束。

《gets,fgets,getchar,fgetc.doc》

下载本文的Word格式文档,以方便收藏与打印。