C 为什么';s不输入3次

C 为什么';s不输入3次,c,C,当我在scanf函数中使用%s时,它将获得3倍的输入,但当我使用新行直到获得新行时,它将需要3倍的输入。但它不起作用。我的问题在哪里 int main() { char str[100][100]; int i; for(i=0; i<3; i++) scanf("%[^\n]",str[i]); for(i=0; i<3; i++) printf("%s",str[i]); return 0; } intma

当我在
scanf
函数中使用
%s
时,它将获得3倍的输入,但当我使用新行直到获得新行时,它将需要3倍的输入。但它不起作用。我的问题在哪里

int main()
{
    char str[100][100];
    int i;
    for(i=0; i<3; i++)
        scanf("%[^\n]",str[i]);
    for(i=0; i<3; i++)
        printf("%s",str[i]);
    return 0;
}
intmain()
{
char-str[100][100];
int i;
对于(i=0;i问题有点不清楚,但建议最好使用
fgets()
而不是
scanf()
来扫描带有空格的字符数组(这可能是您的意图)


for(i=0;i)请澄清问题。显示您的输入和实际获得的内容。从问题中,有点不清楚什么是“获取3次输入”或“获取3次输入”。请确保您可以使用scanf(),但fgets()是首选和建议,而使用scanf()缓冲区可能不会每次都清除,因此可能需要使用getchar()清除stdin缓冲区或者其他一些东西。
for(i=0; i<3; i++)
    fgets(str[i],sizeof(str[i],stdin));