fPrintf целое число дает странные результаты

Я работаю над кодом C, где мне нужно выполнить некоторую отладку. Вот почему я сохраняю значение «ширина» в файле. Коды:

      setlocale(LC_ALL, "en_US.UTF-8");
FILE* fp2;
fopen_s(&fp2, "test.txt", "w");

width = 0.05;

fprintf(fp2, " %d ", width);

fclose(fp2);

Код должен печатать 0,05 в файле. Но он печатает -1717986918.

Поскольку я сохраняю значения в цикле, в файле должно быть сохранено 0,05 до запуска цикла, но -1717986918 сохраняется при запуске цикла.

Может кто-нибудь мне помочь?

width это переменная с плавающей запятой.

2 ответа

Как вы указываете в комментарии, ваш widthпеременная - это число с плавающей запятой. Чтобы напечатать поплавок, вам нужно использовать %f этим способом:

      fprintf(fp2, " %f ", width);

Для получения дополнительной информации о форматировании fprint вы можете увидеть следующую ссылку или страницу википедии для printf

Вы пытаетесь вывести width как целое число с %d, что вызывает такое поведение. Если вы используете %f, он будет работать правильно.

Другие вопросы по тегам