Вывод числа с плавающей точкой - C (СИ)
Формулировка задачи:
Приветствую. Есть такая простая задачка, но не могу разобраться. Суть задачи: Есть текстовый файл с вещественными числами в форме с фиксированной точкой, нужно преобразовать его в файл с вещественными с плавающей точкой с двумя числами в мантиссе. По-идее все просто, но не работает. Считывает числа нормально, а выводит нули или близкие к нему значения. Помогите, что не так? Документацию на printf листал, форум тоже смотрел, не разобрался.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int schet(int n)
{
int count = 1;
while (n = n / 10)
count++;
return count;
}
void modifi(FILE *in, FILE *out)
{
float a, b;
while (!feof(in))
{
fscanf(in, "%f", &a); //тут считывает нормально, видно при пошаговом прогоне кода
printf("%.2e ", &a); //тут уже нули
fprintf(out, "%.2e ", &a); // и тут нули
}
}
int main()
{
FILE * in;
if ((in = fopen("f:\\in.txt", "rt")) == 0) {
printf("ERROR");
}
FILE * out = fopen("f:\\out.txt", "wt");
modifi(in, out);
_getch();
}Решение задачи: «Вывод числа с плавающей точкой»
textual
Листинг программы
printf("%.2e ", a); //тут уже нули
fprintf(out, "%.2e ", a); // и тут нули
Объяснение кода листинга программы
В данном коде происходит вывод числа с плавающей точкой в формате научной нотации с двумя знаками после запятой. Список действий следующий:
- printf или fprintf вызывается для вывода числа с плавающей точкой.
- %.2e - это форматная строка, которая указывает как должен выглядеть вывод числа. %.2e означает, что число должно быть представлено в формате научной нотации с двумя знаками после запятой.
- a - это переменная, значение которой будет выводиться. Вывод:
- printf или fprintf вызывается для вывода числа с плавающей точкой.
- %.2e - это форматная строка, которая указывает как должен выглядеть вывод числа. %.2e означает, что число должно быть представлено в формате научной нотации с двумя знаками после запятой.
- a - это переменная, значение которой будет выводиться. Следовательно, в данном коде происходит вывод числа с плавающей точкой в формате научной нотации с двумя знаками после запятой.