Использование [] в fscanf ()

У меня есть текстовый файл со следующим содержимым:

"abc","def","ghi"

Для правильного чтения содержимого файла работает следующее:

int main()
{
    char name[1024] = {0};
    FILE *file = fopen("file.txt", "r");

    while(1)
    {
        if (fscanf(file, " %[\",]s ", name) == EOF)
            break;
        if (fscanf(file, " %[a-zA-Z]s ", name) == EOF)
            break;

        printf("%s\n", name);
    }

    return 0;
}

Однако следующее не удается:

int main()
{
    char name[1024] = {0}, garbage[5];
    FILE *file = fopen("file.txt", "r");

    while(1)
    {
        if (fscanf(file, " %[\",]s%[a-zA-Z]s ", garbage, name) == EOF)
            break;

        printf("%s\n", name);
    }

    return 0;
}

Я использую MSVC ++ 08. Что такое Я скучаю? Я ищу решение с одним fscanf () в цикле while .

6
задан Cœur 5 August 2017 в 06:22
поделиться