Используйте fgets ()
Прочитайте строку , а затем проанализируйте ее. @ Некоторый программист, чувак
"scanf .... is required" - плохое требование.Но иногда наши клиенты - ну, в некотором смысле, глупы.
с использованием функции scanf
Ключ заключается в том, что всю строку необходимо проанализировать для выравнивания ввода для следующего анализа.
A довольно простоПодход заключается в использовании:
"*"
для сканирования по спецификатору, но не для сохранения. - Ищите окончательный
'\n'
или конец файла.
scanf () подробности
// -rw------- 1 someuser student 489 Jan 28 07:30 file.c
char rights[10+1];
unsigned long long size;
int count;
for (;;) {
char eol = '\n';
count = scanf("%10s %*d %*s %*s %llu %*s %*d %*d:%*d %*s%c", rights, &size, &eol);
if (count == EOF) break;
if (count >= 2 && eol == '\n') {
printf("Rights:<%s> size:%llu\n", rights, size);
} else {
// input ill formed, handle error
// Perhaps report error, then read and toss, up to the end-of-line
TBD();
}
}