использование sscanf для чтения строки и целого числа, разделенного пробелом из текстового файла - PullRequest
0 голосов
/ 02 марта 2019

Я получаю полную строку с помощью %[]

Я считаю, что это неправильно в этом случае.И второе условие, которое заключается в переходе от имени в файле к номеру в файле, который не печатает это, он просто печатает 0. И в счетчике, который я установил, он говорит, что сканируется только через строкутекст один раз, когда он должен идти дважды, и для окончательного кода мне нужно его сканировать 3 раза.

Вот пример input.txt

Ant,Adam   10 5
Mander,Sally 4 3

А вот примеркода

FILE *pFilePerson;
char szInputBuffer[100];
int iScanfCnt;
Simulation newSim = newSimulation();
NodeLL linkList;
LinkedList list = newLinkedList();
Event event;
Person person;

pFilePerson = stdin;
while(fgets(szInputBuffer, sizeof szInputBuffer, pFilePerson) != NULL)
{
        iScanfCnt = sscanf(szInputBuffer,"%[] %d",
                    person.szName,
                    person.iDepartTmUnits);                 

    printf("%-7s\n", person.szName);
    printf("%d\n", person.iDepartTmUnits);

                // Check for bad input.  scanf returns the number of valid conversions
        if (iScanfCnt < 2)
        {
            printf("\tWarning: Expected Name and Depart Units, received %d successful values\n"
                , iScanfCnt);
            continue;
        }
}

Вот вывод, который я получаю

Ant,Adam   10 5

4199680
    Warning: Expected Name and Depart Units, received 1 successful values
Mander,Sally 4 3

4194314
    Warning: Expected Name and Depart Units, received 1 successful values
King,May  6 6
...