Potřebuji poradit:
Mám triviální jednosměrný lineární spojový seznam,
mám 4 prvky na zadání(název, hmotnost, jasnost, radiální rychlost) a potřebuji to nacpat do souboru.
Vše je psané v C. Koukám do toho už dobrý 4 hodiny a nemůžu se k tomu dobrat :-/
Tady je kód, stačí když mi to někdo vysvětlí, nemusí to psát za mne, jde mi spíš o princip jak dostat prvek z lin. spoj. seznamu i do souboru a jak ho ze souboru zase přečíst což bude analogie k zápisu.
kód hlavičky:
#ifndef PARAMETRY_H
#define PARAMETRY_H
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
typedef struct katalog {
char nazev;
int radial_rychlost;
int hmotnost;
int jasnost;
struct katalog *nasledujici;
} KATALOG;
void pridat_nazev(KATALOG **pps, char nazev) {
KATALOG *ps;
ps = (KATALOG *) malloc(sizeof(KATALOG));
if (ps != NULL) {
printf("Chyba alokace paměti!\n");
return;
}
ps->nazev;
ps->nasledujici = *pps;
*pps = ps;
};
void pridat_radialni_rychlost(KATALOG **pps, int radial_rychlost) {
KATALOG *ps;
ps = (KATALOG *) malloc(sizeof(KATALOG));
if (ps != NULL) {
printf("Chyba alokace paměti!\n");
return;
}
ps->radial_rychlost;
ps->nasledujici = *pps;
*pps = ps;
};
void pridat_hmotnost(KATALOG **pps, int hmotnost) {
KATALOG *ps;
ps = (KATALOG *) malloc(sizeof(KATALOG));
if (ps != NULL) {
printf("Chyba alokace paměti!\n");
return;
}
ps->hmotnost;
ps->nasledujici = *pps;
*pps = ps;
};
void pridat_jasnost(KATALOG **pps, int jasnost) {
KATALOG *ps;
ps = (KATALOG *) malloc(sizeof(KATALOG));
if (ps != NULL) {
printf("Chyba alokace paměti!\n");
return;
}
ps->jasnost;
ps->nasledujici = *pps;
*pps = ps;
};
#endif
kód void main():
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "parametry.h"
#include "mazani.h"
#include "hledani.h"
int main() {
char c;
FILE *fa;
fa = fopen("/home/teodor/Plocha/katalog_exoplanet.txt", "a+");
if(fa == NULL) {
fputs("Nelze otevrit soubor!\n", stderr);
return 1;
} else if(fa != NULL) {
printf("Soubor uspesne otevren!\n");
}
// int choice = 0;
/* do {
choice = getchoice("Vyberte operaci: \n", menu); // Volani fce, ktera obsahuje menu
printf("Zvolili jste: %c\n", choice);
} while(choice != 'q');
*/
KATALOG *ps;
ps = NULL;
pridat_nazev(&ps, 0);
pridat_radialni_rychlost(&ps, 1);
pridat_hmotnost(&ps, 2);
pridat_jasnost(&ps, 3);
fclose(fa);
return 0;
}
Předem díky!