C语言中的格式化输入函数包括%c和%s。%c用于读取单个字符,而%s用于读取字符串。
在函数原型方面,gets函数的原型为:char * gets(char * ptr);,它用于从标准输入流stdin读入一个整行,直到遇到'\n'或EOF为止。读入的字符串会写入ptr指向的字符数组,并返回这个指针。如果发生错误或遇到文件结束时,它会返回NULL。值得注意的是,行末的'\n'会被读取但不写入数组。
另一方面,getchar()的函数原型为:int getchar(void);,它用于从标准输入流stdin读取一个字符。如果读取到文件结尾,将返回EOF。由于EOF不能用char类型表示,getchar()返回的类型为int。在使用时需要注意这一点。
在实际应用中,getchar()的一个重要用途是在输入name[i]之前,用它来读取之前scanf("%d", &num[i])中输入整数后按的回车键。如果直接使用gets,回车键会导致直接读取一个空字符串。因此,通过先使用getchar()读取回车键,可以避免这个问题。
综上所述,%c和%s主要用于格式化输入,而gets和getchar则分别用于读取单行字符串和单个字符。了解它们的差异和应用场景,有助于更好地编写C语言程序。
温馨提示:答案为网友推荐,仅供参考