当我尝试编写此代码时:
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中?
答案 0 :(得分:0)
您可以吃掉字符,直到\n
。
为此,您可以使用%*[\n]
规范。
在%*[\n]
规范中读取并忽略字符,直到到达\n
。
示例:
scanf(" %15s%*[^\n]",A);
scanf(" %15s%*[^\n]",B);
scanf(" %15s%*[^\n]",C);