从用户那里获取字符串:将不需要的单词放入数组的问题

时间:2018-10-07 19:26:19

标签: c

当我尝试编写此代码时:

int main(){
    /*1.*/char A[16];
    /*2.*/char B[16];
    /*3.*/char C[16];
    /*4.*/scanf(" %15[^\n]",A);
    /*5.*/scanf(" %15[^\n]",B);
    /*6.*/scanf(" %15[^\n]",C);

例如,在第4行之后,我从用户那里得到的输入是:“ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”(30 * a)。 因此,数组A获得输入:“ aaaaaaaaaaaaaaaaaaa”(15次),当我到达第5行时,它跳转到第6行,而数组B获得输入:“ aaaaaaaaaaaaaaaaaaa”(15次)。 如何预防?并允许用户将其输入插入到数组B中?

1 个答案:

答案 0 :(得分:0)

您可以吃掉字符,直到\n

为此,您可以使用%*[\n]规范。

%*[\n]规范中读取并忽略字符,直到到达\n

示例:

scanf(" %15s%*[^\n]",A);
scanf(" %15s%*[^\n]",B);
scanf(" %15s%*[^\n]",C);