我想知道如何在缺少某些字段的情况下存储用半冒号分隔的文本的输入

问题描述 投票:0回答:1

如果缺少某些字段,例如“ 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;
}
c scanf
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.