在C中读取字符串时scanf的行为

问题描述 投票:1回答:1

我想知道在使用scanf(“%s”)时,编译器如何处理空格,换行符。我知道scanf(“%s”)无法读取空格和换行符。

例如,如果我输入

hi          question

hi

        question

scanf(“%s”)毫无问题地读取它。

下面是我指的代码

#include <stdio.h>

int main () {
    char str [2][50];
    scanf("%s", str[0]);
    scanf("%s", str[1]);
    printf("%s\n", str[0]);
    printf("%s\n", str[1]);
    return 0;
}
c string scanf buffer
1个回答
1
投票

scanf在线文档:

空格字符:该函数将读取并忽略在下一个非空格字符之前遇到的所有空格字符(空格字符包括空格,换行符和制表符-请参见isspace)。格式字符串中的单个空格可验证从流中提取的任意数量的空格字符(包括无空格)。

source

© www.soinside.com 2019 - 2024. All rights reserved.