Работа с файлами

  • Автор темы Gekata
  • Дата начала
G

Gekata

Гость
#1
Здравствуйте! Я вот с такой задачей: Дана последовательность из n вещественных чисел (0.3; 1.5; 2.6; 3.24; 5.89; 6.0; 7.3; 9.25; 10.98). Записать все эти числа в файл. Вывести на экран все компоненты, не попадающие в данный диапазон [2,5; 7,5].
Есть ток начало, и то не знаю, какой тип данных брать, записывает в файл слово ПОСЛЕДОВАТЕЛЬНОСТЬ, а цифры нет. И не могу дальше условия задачи записать!

C++:
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "locale.h"
#define FNAME "D:\\n.txt.\0"\


void main ()
{
float t[15];
FILE *a;
setlocale (LC_ALL, "rus");
a=fopen(FNAME,"wt");
if (a==NULL)
{
printf ("Error");
getch ();
}	
printf("0.3 1.5 2.6 3.24 5.89 6.0 7.3 9.25 10.98"); 
fprintf(a,"Последовательность:");
scanf ("%f", &t);
fprintf(a,"%f",t);
fclose (a);
getch ();
}
и проблема с этой строкой:
C++:
printf("0.3 1.5 2.6 3.24 5.89 6.0 7.3 9.25 10.98");
нужно чтобы последовательность была задана в проге, а не вводилась с клавиатуры.
 
S

Sekt

Гость
#2
printf("0.3 1.5 2.6 3.24 5.89 6.0 7.3 9.25 10.98");
исп %d.и зачем числа сначало запишите символы.И потом уже с программы перевидите их в числа.исп fgets(),fputs().
 
S

sg^_^milytia

Гость
#3
вот еще есть такое преобразование из CHAR во FLOAT:

char temp[]="0.43";
float tempFloat=atof(temp);
cout << "tempFloat = " << tempFloat;

если тебе это конечно поможет ( библиотека cstdlib ),

и еще строчка
fprintf(a,"Последовательность:");
она и записывает в твой фаил слово "ПОСЛЕДОВАТЕЛЬНОСТЬ", а запись в фаил ты должен делать после отсеивания не лежащих в диапазоне чисел ([2,5; 7,5]), и после формирования новой строки, примерно так:
fprintf(a,newString);
где newString - строка в которой лежат флоаты ("2,2 0,4 7,8") и так далее