Ath*_*eel 0 c arrays newline scanf char
我想使用 获取char
数组值scanf
。我使用了这段代码:
// get first array
printf("first length:\n");
scanf("%d", &f_l);
printf("first number:\n");
for(i=0 ; i<=f_l ; i++) {
scanf("%c", &first[i]);
}
//start test
printf("first number is:\n");
for(i=0 ; i<=LEN ; i++) {
printf("(%c | %d)", first[i],i);
}
Run Code Online (Sandbox Code Playgroud)
但是当我打印数组时,我\n
首先发现了 a ( first[0]
),而其他字符则从 开始place[1]
!为什么会这样,如何解决?
这是因为当您执行for时, a'\n'
留在缓冲区中。scanf()
f_l
使用尾随空格,它应该可以工作
for(i=0 ; i<=f_l ; i++) {
scanf(" %c", &first[i]);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1956 次 |
最近记录: |