Я использую функцию fprintf для печати в новый файл
Я использую следующую команду для записи несколько раз:
fprintf(fp, "%-25s %d %.2f %d",temp->data.name, temp->data.day, temp->data.temp, temp->data.speed);
Проблема в том, что иногда в файле появляется лишняя новая строка в качестве первого символа. Может быть, это остатки от какого-то буфера, я действительно не знаю...
typedef struct Data {
char name[26];
int day;
int speed;
float temp;
} Data ;
@spatz вы были правы, я новичок в форматировании строк, и мне сказали сделать один для fscanf, где я должен был ожидать неопределенное количество пробелов между битами данных, вот что я придумал , я почти уверен, что это источник проблемы:
check=fscanf(fp1, "%20c%*[^0-9]%d%*[^0-9]%f%*[^0-9]%d%*[^\n]%*c", name, &day, &temp, &speed);
только первая строка читается нормально, а все последующие строки читаются с новой строки предыдущей строки.
Может кто-нибудь показать мне правильный способ написать эту вещь?