扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1.读取字符
创新互联主营朝阳县网站建设的网络公司,主营网站建设方案,app软件定制开发,朝阳县h5小程序开发搭建,朝阳县网站营销推广欢迎朝阳县等地区企业咨询
getchar()的功能最主要是c语言中读取字符的一个函数,能够提取单个字符。
2.输入单个字符
getchar()的功能还可以从键盘中输入一个单个的字符,并且把单个的字符输入到计算机中。
3.返回值是char类型
可以返回int类型的值。
getchar由宏实现:#define getchar() getc(stdin)。getchar有一个int型的返回值。当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符。
getchar函数的返回值是用户输入的字符的ASCII码,若文件结尾则返回-1(EOF),且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待用户按键。
在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。
其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来。
可以通过fgetc函数,将字符读取出来,并赋值到数组的对应位置上。
fgetc声明在stdio.h中,其原型为
int fgetc(FILE *fp);
功能为从打开的文件fp中读取一个字符,并返回。
当读取成功时,返回读取到的字符的ascii码值,否则返回EOF。
以下是逐个读取字符,存于字符数组,直到读完整个文件的例子。
#include stdio.h
int main()
{
char buf[10240];//定义一个足够大的字符数组存文件数据。
int c;//临时变量。
int cnt = 0; //标记目前读到几个字节。
FILE *fp;//文件指针。
fp = fopen("in.txt", "r"); //打开文件。
while(1)
{
c = fgetc(fp); //读一个字节。
if(c == EOF) break; //到文件尾,退出循环。
buf[cnt] = c;//赋值到字符数组中。
cnt ++;//读到的字符增加一个。
}
fclose(fp);//关闭文件。
return 0;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流