C 输入的动态加载
我是c编程新手,我需要在循环中扫描输入,并在扫描时验证它们。 我试图实现以下目标: 在从0到n的循环中,对于每n个类型的4个输入,然后按enter键验证它们(如果错误,则结束程序),然后继续键入另4个输入(新行) 基本输入是: 1 2 3 4(输入)(如果确定->光标下一行) 7 5 6 8(输入) 一遍又一遍直到nC 输入的动态加载,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],&
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的倍数)。此外,还应使用小于nn的值是多少?是否键入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;
}