fgets()函数输入字符串(字符数组)
fputs 函数用于将字符串写入到指定的流中。
fgets( ) 函数用于从指定的流中读取一行数据,直到遇到换行符、EOF(文件结束标志)或读取了指定数量的字符为止。
fgets(str, sizeof(str), stdin);
str:指向用于存储输入字符串的字符数组的指针。
sizeof(str):指定最多读取的字符数(包括结尾的空字符 \0)。
stdin:代表输入流,从键盘中输入一个字符。
fgets 函数从键盘中读取最多 n-1 个字符,或者读取到换行符(\n)或文件末尾(EOF)为止,并将这些字符存储到 str 指向的数组中。读取的字符串将以空字符 \0 结尾。如果成功读取一行,fgets 返回指向 str 的指针;如果读取失败或到达文件末尾,则返回 NULL。
使用fputs()函数输出字符串(字符数组)
fputs函数用于将一个字符串写入到指定的流中。
fputs(str, stdout);
str:指向要写入流中的字符串的指针。
stdout:代表输出流。
fputs 函数将 str 指向的字符串(不包括结尾的空字符 \0)写入到 stdout指向的流中。如果写入成功,fputs 返回非负值;如果发生错误,则返回 EOF。
以下为具体示例:
输入n行字符串,将其原样输出。
#include <stdio.h>
int main() {
int n;
// 读取字符串的行数
scanf("%d",&n);
getchar();//丢弃换行符'\n'
// 读取并输出每一行的字符串
for (int i = 0; i < n; i++) {
char str[51];
fgets(str,sizeof(str),stdin);
fputs(str,stdout);
}
return 0;
}
注意:
在C语言程序中,getchar()函数用于从标准输入流(通常是键盘)读取下一个字符,并将其作为int类型的值返回。如果到达文件末尾或发生读取错误,getchar()将返回EOF(通常是-1)。
在给出的代码上下文中,getchar();被用于读取并丢弃用户输入整数n后紧跟着的换行符。这是因为当用户在命令行中输入一个整数并按下回车键时,除了整数本身,还会产生一个换行符。这个换行符会留在输入缓冲区中,在调用fgets()读取字符串之前,如果输入缓冲区中还有未处理的换行符,fgets()会立即读取这个换行符并认为它已经读取了一行(因为它确实读取了一个换行符,这是行结束的标志)。这会导致程序不能正确地读取用户期望输入的下一行字符串。
因此,在读取整数n之后调用getchar()的作用是读取并丢弃这个多余的换行符,从而确保后续的fgets()调用能够正确地读取用户输入的字符串。
调用 getchar(),它不接收任何参数,也不将读取到的字符赋给任何变量。这样,换行符就被读取并丢弃了。
简而言之,getchar();在这里的作用是清除输入缓冲区中由于输入整数而产生的换行符,避免影响后续的字符串读取操作。
本文详细解释了C语言中的fgets和fputs函数,以及它们在从输入流(如键盘)读取字符串和向输出流(如屏幕)写入字符串的应用,特别强调了getchar()在清除输入缓冲区换行符的重要性。
的输入和输出&spm=1001.2101.3001.5002&articleId=136599948&d=1&t=3&u=7a5b204f7b9b4842b9fafa422e6ead4e)
3003

被折叠的 条评论
为什么被折叠?



