Некорректное чтение с файла

Помогите исправить проблему или посоветуйте как лучше сделать. В файле записано вот это:

Test marka 1 Ukraine 2014 23 color cool

Test marka 2 Russia 1986 43 rare

Вот чтение с файла и вывод на экран А вот что выдает в консоли

fscanf(read,"%s  %s  %d  %d  %s\n",&info[i].name,&info[i].country,&info[i].year,&info[i].cost,&info[i].feat);
            printf("Info of mark num %d\n",i+1);
            printf("Name: %s\n",info[i].name);
            printf("Country: %s\n",info[i].country);
            printf("Year: %d\n",info[i].year);
            printf("Cost: %d\n",info[i].cost);
            printf("Features: %s\n",info[i].feat);`

Ответы (1 шт):

Автор решения: Harry

Итак,

fscanf(read,"%s  %s  %d  %d  %s\n",&info[i].name,&info[i].country,&info[i].year,
       &info[i].cost,&info[i].feat);

Строка Test marka 1 Ukraine 2014 23 color cool. Не знаю, какого типа у вас поля структуры, но даже если все верно (во что я не верю по вашей записи...), то считывается так

name       Test
country    marka
year       1
cost       Ukraine  (должно считываться число! Но это не число. Чтение завершено)
feat       2014     (уже не читается - из-за неверного чтения предыдущего поля)

Следующее чтение начинается с того места, где остановилось предыдущее -

name       Ukraine
country    2014
year       23
cost       color  (опять не считывается - это не число!)

ну, и так далее...

Так что начинайте с написания правильного вызова fscanf...

→ Ссылка