Если я вас правильно понимаю, у вас есть строки ввода, например
[0,0]
[0,2]
[0,4]
, и вы успешно читаете их, используя вызов fscanf
, например
fscanf(ifp, " [%d,%d]", &row, &col);
Если это так, иесли у вас есть другой формат ввода
[0,0]->[0,1]->
[0,2]->[0,3]->
[0,4]->[1,4]->
, почему вы не можете просто использовать что-то вроде
fscanf(ifp, " [%d,%d]->[%d,%d]->", &row1, &col1, &row2, &col2);
Полагаю, вы также можете использовать
fscanf(ifp, " [%d,%d]->", &row, &col);
, чтотребуется два вызова для чтения каждой строки.
PS Обязательные scanf
напоминания:
Не забудьте всегда проверять возвращаемое значение из scanf
и fscanf
, чтобы сделатьуверен, что ожидаемые входные данные были сопоставлены. (Я явно не смог последовать этому совету во фрагментах кода в этом ответе.)
Хотя часто кажется, что вещь, которую следует использовать, fscanf
- этообычно плохой инструмент для работы, и это может быть больше проблем, чем стоит заставить его делать то, что вы на самом деле хотите. Вы можете рассмотреть возможность использования альтернатив .