首页 > 解决方案 > 如果缺少某些字段,我想知道如何存储以分号分隔的文本的输入

问题描述

如果“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;
}

标签: cscanf

解决方案


你可以查看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;
}

推荐阅读