getchar()的功能是什么

1.了解getchar()

在学习计算机编程的初期,getchar()函数应该是我们必须要掌握的一个函数。因为,没有输入输出流,程序将无法和我们对话交流。

getchar()函数是一个可以从标准输入流"stdin"中读取下一个字符的函数。它的头文件为。有时,我们需要从标准输入流中逐个读取字符,这时可以使用getchar()函数。

每次调用getchar()函数,它会读取下一个字符并返回其ASCII码值。在遇到文件末尾(EOF,end-of-file)前,每调用一次getchar()函数就会读取一个字符。

#include

int main(){

int a = getchar();

printf("the character you input is: ");

putchar(a);

printf(" its ASCII code is: %d\n",a);

return 0;

}

2.getchar()的常见使用场景

2.1 输入字符串

我们可以使用getchar()函数来逐个读取用户输入的字符,然后将这些字符存储到一个字符数组中形成一个字符串。接下来,我们就可以对该字符串进行各种处理。

#include

#include

int main(){

char name[100];

int i = 0;

char a = getchar();

printf("please input your name:");

while(a != '\n'){ //因为输入结束标志为回车键,所以需要在读到回车键之前循环一直读入字符

name[i] = a;

i++;

a = getchar();

}

name[i] = '\0'; //printf函数需要最后一位为'\0'的字符串

printf("welcome %s\n",name);

return 0;

}

2.2 统计字数

我们做文字处理的时候,常常需要统计输入的字符数、单词数、行数等信息。字符数看似易于实现,读入一篇文章后逐个字符统计即可。实际上,这种方法是偏低效的。我们可以借助getchar()函数,来实现更高效的解决方案。

#include

int main(){

int counter = 0;

char c = getchar();

while(c != EOF){ //'Ctrl+Z'结束输入,即可输出总字符数

counter++;

c = getchar();

}

printf("total characters: %d",counter);

return 0;

}

3.getchar()与EOF的关系

EOF(end-of-file)表示输入的结束,可以作为getchar()函数的返回值,来确定输入的姿势。getchar()函数的返回值是int类型的,而EOF是一个预先定义好的整型常量,它的值可以是任何一个不等于EOF的整数。

我们需要在读取字符前判断是否遇到EOF,只有当未遇到EOF时,才能调用getchar()函数,否则程序将陷入死循环。

#include

int main(){

char c;

while((c = getchar()) != EOF){

//do something

}

return 0;

}

4.小结

getchar()函数是我们初学计算机编程时必须学会的一个函数,它能够从标准输入流中读取下一个字符。getchar()函数的常见使用场景有输入字符串、统计字数等。

我们需要注意,EOF(end-of-file)表示输入的结束,我们可以使用getchar()函数配合EOF,来确定输入的结束姿态,否则会引发程序陷入死循环。

后端开发标签