如果缺少某些字段,例如“ oeb”和“ 7”之间,如何跳过scanf?
#include <stdio.h>
int main ()
{
int,a,b,c;
char str1[200];
char str2[200];
char str[] ="1;2;oeb;;7;ed";
scanf("%d;%d;%[^;];%d;%[^\n]",&a,&b,str1,&c,str2);
return 0;
}
例如,您可以检查一下scanf的返回值,它返回发生了多少次成功的输入,您可以检查是否全部5次都已成功完成,]
#include <stdio.h>
int main ()
{
int,a,b,c;
char str1[200];
char str2[200];
char str[] ="1;2;oeb;;7;ed";
if (scanf("%d;%d;%[^;];%d;%[^\n]",&a,&b,str1,&c,str2) != 5) {
// Error handling code here
}
else {
// If everything is ok, continues here,
}
return 0;
}