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
, он будет работать правильно.