
Grupa: Użytkownik
Lokalizacja: Cybinka/ZG
Posty: 50
#526493
Od: 2009-10-28
Ilość edycji wpisu: 1
|
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) { int k; float *fptr; float f; int i; long int offset; int ktora; FILE *plik = fopen ("plik", "w" ; srand(time(NULL)); for (i=0; i<5; i++) { f = 100 * (float) rand() / RAND_MAX; printf("%5.3f\n", f); fwrite(&f, sizeof(float), 1, plik); } printf("----------\n" ; fclose(plik);
// Odczyt wszystkich danych plik = fopen ("plik", "r+" ; while ( fread (&f, sizeof(float), 1, plik)) { printf("%5.3f\n", f); } // Odczyt konkretnej danej do { printf("\nPodaj numer danej do odczyt: " ; scanf("%d", &ktora); if (ktora < 0) break; offset = (ktora - 1) * sizeof(float); if( fseek(plik, offset, SEEK_SET) !=0) { printf("\nBlad" ; exit(1); } fread ( &f, sizeof(float), 1, plik); printf("Dana #%d, Offset: %d, Wartosc: %5.3f\n", ktora, offset, f); } while( ktora > 0); // Modyfikacja jednej danej odczyt całosci printf("\nPodaj numer danej do modyfikacji: " ; scanf("%d", &ktora); offset = (ktora-1) * sizeof(float); fseek( plik, offset, SEEK_SET); fread ( &f, sizeof(float), 1, plik); //po odczycie przesuwa wskaźnik się na nast element //stąd zaraz będzie potrzebne wywolanie fseek printf( "Madyfikacja wartości: %5.3\n", f); f = f + 10.0; fseek( plik, offset, SEEK_SET); fwrite(&f, sizeof(float), 1, plik); rewind(plik); printf("Dane po modyfikacji\n" ; while( frad ( &f, sizeof(float), 1, plik)) { printf("5.3f\n", f); } fclose(plik); return 0; }
wpis edytowany 29.04.2010 09:38:02
|