C语言中getc怎么用?

从输入流中接受一字符是什么意思。。。 最好给我个简短的例子。 小白求教。。

在C语言中,用函数getc(fgetc)从文件读取字符。getc、fgetc用法相同。getc的调用形式:ch=getc(fp);此处的fp是文件指针;函数功能是从文件指针指向的文件读入一个字符,并把它作为函数值返回给字符型变量ch。
#include <stdio.h>
int main()
{
char c;
c = getc(stdin);
printf("%c",c);
return 0;
}
纯手打,望采纳
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-26

1、在C语言中,用函数getc(fgetc)从文件读取字符。getc、fgetc用法相同。getc的调用形式:ch=getc(fp);此处的fp是文件指针;函数功能是从文件指针指向的文件读入一个字符,并把它作为函数值返回给字符型变量ch。

2、例程:

#include <stdio.h>
int main()
{
char c;
c = getc(stdin);
printf("%c",c);
return 0;
}

第2个回答  2019-04-22

scnaf,getchar
都是都是下面这类函数。
好像getc不是从输入流读取一个字符,而是从指定流读取。

楼主读一下这篇文章可能会对标准输入流(stdin)有一个新的认识:

下文转载于OUYANG_LINUX007的CSDN博客
stdin是C中的标准输入流,它是缓冲输入方式。
在程序中,当用户调用stdin相关函数从键盘中获取字符时,函数会先去缓冲区中查看当前是否存在字符。如果存在,则会取出字符;如果不存在,则会中断,提示用户输入。
用户利用键盘输入时,输入的字符会依次被送到缓冲区中,在此处等待的输入函数只有在用户输入了回车时,才会去缓冲区中取字符。
当刷新缓冲区后,缓冲区会被清空。
当输入函数从缓冲区中读取
在C中标准输入指的是键盘的输入,stdin输入就是从键盘上读取字符。
stdin是缓冲输入方式,用户在键盘上输入的字符会首先被送到一个缓冲区中存放。在程序中调用
getchar函数是定义在
stdio.h
文件中的一个输入函数。它从标准输入设备(一般是键盘)中读取一个字符。
在实际工作中,它是这样完成的:
键盘输入到计算机中的字符并不是立刻送到内存中指定位置,而是会首先缓存到一个缓冲区中。这个是计算机为了弥补不同硬件之间速度差距,而惯用的伎俩。
当在程序中第一次调用
getchar();时,函数会去缓冲区看当前是否存在字符,如果有,则会取出一个字符,返回;如果没有,那么会提示用户输入。只有当用户输入了回车,此函数才会再次去缓冲区中取字符,并返回一个字符。
getchar():
我们用getchar()在控制台上取字符的时候,它首先要把所有取得的东西按照顺序放在内存的某个临时的地方,但我们输入回车时它会从这个地方开始在取字符,并按相同的顺序取,当取到回车时就是上次输入的最后一个字符,注意我们在一个程序里不论用多少getchar(),它都会存放在同一个地方,并且不断的向后增加,然后在用getchar()取的时候会从上次取的后面继续取,只要这个存储的地方有字符,那么我们用getchar()时控制台就不会停顿等待我们输入字符,只有当取到换行时才是表示这个地方完全空了,下次在用getchar()的时候控制台才会停顿等待用户输入字符!
getchar()返回的是int型.
[code]
int
c;
while((c
=
getchar())
!=
EOF)
{
....
}
[/code]
原因在于程序中的变量c被声明为char类型,而不是int类型。这意味着c无法容下所有可能的字符,特别是,可能无法容下EOF。因此,最终结果存在两种情况。一种可能是:某些合法的输入字符在被“截断”后使得c的取值与EOF相同;另一种可能是,c根本不可能取到EOF这个值。对于前一种情况,程序将在文件复制的中途终止;对于后一种情况,程序陷入一个死循环。实际上,还有可能存在第三种情况:程序表面上似乎能够正常工作,但完全是因为巧合。尽管函数getchar的返回结果在赋给char类型的变量c时会发生“截断”操作,尽管while语句中比较运算的操作数不是函数getchar的返回值,而是“被截断”的值c,然而令人吃惊的是许多编译器对上述表达式的实现并不正确。这些编译器确实对函数getchar的返回值作了“截断”处理,并把低端字节部分赋给了变量c。但是,它们在比较表达式中并不是比较c与EOF,而是比较getchar函数的返回值与EOF!编译器如果采取的是这种做法,上面的例子程序看上去就能够“正常”运行了。
第3个回答  2013-04-02
在C语言中,用函数getc(fgetc)从文件读取字符。getc、fgetc用法相同。getc的调用形式:ch=getc(fp);此处的fp是文件指针;函数功能是从文件指针指向的文件读入一个字符,并把它作为函数值返回给字符型变量ch。 ----------------物联网校企联盟技术部
第4个回答  2013-04-03
楼主读一下这篇文章可能会对标准输入流(stdin)有一个新的认识: http://blog.csdn.net/ouyang_linux007/article/details/7530870

像 scnaf,getchar 都是都是这类函数。

好像getc不是从输入流读取一个字符,而是从指定流读取。
相似回答