在给定数量的输入后停止 scanf 扫描 [c]
Stopping scanf from scanning after a given amount of inputs [c]
我正在尝试将(15 个或更少)数字扫描到 variable/array array[15]
,我希望它在输入为 EOF
"CTR+Z" 时停止扫描,或者当输入了 15 个值时,我尝试使用 ( i < 15 )
如下所示,但它似乎并没有真正完成工作,任何帮助将不胜感激
这是我的代码:
#include <stdio.h>
int main(){
int array[15], i = 0;
printf( "Please enter a sequence A: " );
while( (scanf( "%d", &array[i]) != EOF) || ( i < 15 ) ){
printf( "%d ", array[i] );
i++;
}
return 0;
}
您需要 &&
而不是 ||
while( (scanf( "%d", &array[i]) != EOF) && ( i < 15 ) ){
再次接受的条件是没有EOF
和接受的输入小于15
代码有 3 个问题
while( (scanf( "%d", &array[i]) != EOF) || ( i < 15 ) ){ // problem code
需要使用 &&
而不是 ||
来确保两个测试都通过。
数组索引测试为时已晚。先做。
scanf( "%d", &array[i])
returns 0、1 或 EOF
。仅在 1 上,代码集 array[i]
。
固定
while(i < 15 && scanf("%d", &array[i]) == 1) { // fixed code
我正在尝试将(15 个或更少)数字扫描到 variable/array array[15]
,我希望它在输入为 EOF
"CTR+Z" 时停止扫描,或者当输入了 15 个值时,我尝试使用 ( i < 15 )
如下所示,但它似乎并没有真正完成工作,任何帮助将不胜感激
这是我的代码:
#include <stdio.h>
int main(){
int array[15], i = 0;
printf( "Please enter a sequence A: " );
while( (scanf( "%d", &array[i]) != EOF) || ( i < 15 ) ){
printf( "%d ", array[i] );
i++;
}
return 0;
}
您需要 &&
而不是 ||
while( (scanf( "%d", &array[i]) != EOF) && ( i < 15 ) ){
再次接受的条件是没有EOF
和接受的输入小于15
代码有 3 个问题
while( (scanf( "%d", &array[i]) != EOF) || ( i < 15 ) ){ // problem code
需要使用
&&
而不是||
来确保两个测试都通过。数组索引测试为时已晚。先做。
scanf( "%d", &array[i])
returns 0、1 或EOF
。仅在 1 上,代码集array[i]
。
固定
while(i < 15 && scanf("%d", &array[i]) == 1) { // fixed code