plik tekstowy , binarny i struktura

LoGaN9916
Użytkownik
Użytkownik
Posty: 164
Rejestracja: 26 lis 2006, o 20:15
Płeć: Mężczyzna
Lokalizacja: Zona
Podziękował: 3 razy
Pomógł: 3 razy

plik tekstowy , binarny i struktura

Post autor: LoGaN9916 »

Witam!

Kod: Zaznacz cały

#include "stdafx.h"
#include <stdio.h>
struct dysk
{
char producent[20];
char model[20];
int pojemnosc;
int predkosc;
int cena;
};
int main()
{
FILE*plik;
FILE*plik1;
FILE*plik2;
FILE*plik3;
struct dysk d1;
int suma=0,liczba,srednia,x;
plik=fopen("hdd.dat","rb");
if (plik==NULL)
{
printf("Błąd otwarcia pliku : hdd.dat
");
return -1;
}
plik1=fopen("hdd.txt","w");
if (plik1==NULL)
{
printf("Błąd otwarcia pliku : hdd.txt
");
return -1;
}
       
plik2=fopen("hdd2.txt","w");
if (plik1==NULL)
{
printf("Błąd otwarcia pliku : hdd.txt
");
return -1;
}

plik2=fopen("hdd2.txt","r");
if (plik1==NULL)
{
 printf("Błąd otwarcia pliku : hdd.txt
");
  return -1;
}
plik3=fopen("hdd3.txt","w");
if (plik1==NULL)
{
printf("Błąd otwarcia pliku : hdd.txt
");
return -1;
}
fread(&d1,sizeof(d1),1,plik);
while(feof(plik)==0 )
{
               
fprintf(plik1,"%s  %s  %d  %d  %d
",d1.producent,d1.model,d1.pojemnosc,d1.predkosc,d1.cena);
if(d1.pojemnosc>=1000)
{
fprintf(plik2,"%d
",d1.cena);
}
if(d1.pojemnosc<1000)
{
fprintf(plik3,"%d
",d1.cena);
}
fread(&d1,sizeof(d1),1,plik);
}
fclose(plik);
fclose(plik1);
fscanf(plik2,"%d",&x);
while(!feof(plik2))
{
printf("%d
",x);
fscanf(plik2,"%d",&x);
}
fclose(plik2);
fclose(plik3);
return 0;
}
Oto co udało mi się napisać. A teraz małe wyjaśnienie miałem napisać program który z pliku hdd.data odczyta dane i zapisze je do pliku hdd.txt . Potem program ma policzyć średnią cenę dysków o pojemnosci >=1000 i <1000 .Więc wymyśliłem żeby stworzyć 2 dodatkowe pliki txt które miałby przechowywać te wybrane dyski. No i teraz stworzyłem drugą pętle która ma odczytać dane z pliku hdd2.txt i na razie tylko je wyświetlić ale nic się nie dzieje a plik hdd2.txt po wrzuceniu tej pętli ma rozmiar 0.
Więc nie wiem jak to rozwiązać.
ODPOWIEDZ