Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 输入的动态加载_C_Scanf - Fatal编程技术网

C 输入的动态加载

C 输入的动态加载,c,scanf,C,Scanf,我是c编程新手,我需要在循环中扫描输入,并在扫描时验证它们。 我试图实现以下目标: 在从0到n的循环中,对于每n个类型的4个输入,然后按enter键验证它们(如果错误,则结束程序),然后继续键入另4个输入(新行) 基本输入是: 1 2 3 4(输入)(如果确定->光标下一行) 7 5 6 8(输入) 一遍又一遍直到n int i=0; while (i <= n){ if(scanf("%d %d %d %d",&array[i],&array[i+1],&

我是c编程新手,我需要在循环中扫描输入,并在扫描时验证它们。 我试图实现以下目标:

在从0到n的循环中,对于每n个类型的4个输入,然后按enter键验证它们(如果错误,则结束程序),然后继续键入另4个输入(新行)

基本输入是:

1 2 3 4(输入)(如果确定->光标下一行)

7 5 6 8(输入)

一遍又一遍直到n

int i=0;
while (i <= n){
     if(scanf("%d %d %d %d",&array[i],&array[i+1],&array[i+2],&array[i+4])!=4) return 0; 
    i+=5;
}
inti=0;

而(i您需要为循环使用另一个计数器,因为
i
用于数组的索引


如果
n
是要进行4次输入的次数,则必须相应地分配数组(以5的倍数)。此外,还应使用小于n
n的值是多少?是否键入4个值?如果n小于5,则程序将在第一次输入后结束。为什么最后一个参数
和数组[i+4]
而不是
&array[i+3]
?n应始终大于5,i键入4个值,i+4是因为我需要免费索引以备将来使用最后一个参数似乎是
&array[i+3]
@SunEric,在对问题的评论中,已经询问,
i+3
保留“供将来使用”!
#include<stdio.h> 
#include<stdlib.h> 

int main(int argc, char** argv)  
{ 
    int n = 5;
    int array[n*5]; // mult 5 because of i+=5 / 4 inputs at onece + 1 rserved
    int i=0;
    int r = 0, c = 0;
    while (c < n){
        printf("type four ints: ");
        r = scanf("%d %d %d %d",&array[i],&array[i+1],&array[i+2],&array[i+4]);
        if(4 != r) {
            printf("bad input, program will exit: %d\n", r);
            return EXIT_FAILURE; 
        }
        i+=5;
        c++;
    }
    return EXIT_SUCCESS;  
}