gets()和fgets()在输入中的差异(fgets会多吃一个回车符号'n')

    xiaoxiao2025-02-03  24

    #include <stdio.h>

    char* gets(char *s);

    char* fgets(char *s, int n, FILE *stream);

    相同:

    1. fgets的参数stream指定为stdin时,两者都能从标准输入中读取字符串。

    2. 读取成功都返回地址,失败都返回NULL

    不同:

    gets从标准输入中得到字符串,fgets加入了防溢出的措施。此外,两者都从stdin中读取数据时,fgets会多吃一个回车符号'\n'

    #include <stdio.h> #include <string.h> int main() { char buf[1024] = {0}; gets(buf); int len = strlen(buf); printf("len = %d\n", len); char buf2[1024] = {0}; fgets(buf2, sizeof(buf2), stdin); len = strlen(buf2); printf("len = %d\n", len); return 0; }结果:

    aaa

    len = 3

    bbb

    len = 4

    转载请注明原文地址: https://ju.6miu.com/read-1296067.html
    最新回复(0)