fgets函数换行符
时间: 2024-02-24 18:50:58 浏览: 127
fgets函数在读取输入时,会将输入的换行符'\n'也存储在读取的字符串中。这意味着,如果你在输出fgets函数读取的字符串时,会出现多余的换行符。为了避免这种情况,可以使用s_gets函数,它与fgets函数类似,但会将最后一个字符替换为'\0',而不是'\n'。以下是一个使用fgets函数和s_gets函数的例子:
```c
#include <stdio.h>
#define SIZE 10
char *s_gets(char *st, int n);
int main(void)
{
char str[SIZE];
printf("Enter a string (up to %d characters):\n", SIZE - 1);
fgets(str, SIZE, stdin);
printf("You entered: %s", str);
printf("Enter another string (up to %d characters):\n", SIZE - 1);
s_gets(str, SIZE);
printf("You entered: %s", str);
return 0;
}
char *s_gets(char *st, int n)
{
char *ret_val;
int i = 0;
ret_val = fgets(st, n, stdin);
if (ret_val)
{
while (st[i] != '\n' && st[i] != '\0')
i++;
if (st[i] == '\n')
st[i] = '\0';
else
while (getchar() != '\n')
continue;
}
return ret_val;
}
```
阅读全文