Tak už se mi konečně podařilo oživit základy C, přidávám parametry, ale mam problém s přidáním názvu, ona to určitě bude zase nějaká blbost, která mi uniká :-/
Tady je zdroják headeru:
#ifndef PARAMETRY_H
#define PARAMETRY_H
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <malloc.h>
#include <string.h>
#define HODNOTA 100
typedef struct katalog {
int radial_rychlost;
int jasnost;
int hmotnost;
char nazev[HODNOTA];
struct katalog *nasledujici;
} KATALOG;
void vloz_parametr(KATALOG **pps, int parametr_1, int parametr_2, int parametr_3, char *parametr_4) {
KATALOG *ps;
ps = (KATALOG *) malloc(sizeof(KATALOG));
if(ps == NULL) {
fputs("Chybna alokace pameti!\n", stderr);
return;
}
ps->hmotnost = parametr_1;
ps->nasledujici;
ps->jasnost = parametr_2;
ps->nasledujici;
ps->radial_rychlost = parametr_3;
ps->nasledujici;
ps->nazev = parametr_4;
*pps = ps;
};
#endif
A tady main:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "parametry.h"
#include "mazani.h"
#include "hledani.h"
#define ROZSAH 100
void vypis_katalog(const KATALOG *ps);
void vloz_parametr(KATALOG **pps, int parametr_1, int parametr_2, int parametr_3, char *parametr_4);
void vypis_katalog(const KATALOG *ps) {
if(!ps)
return;
printf("Hmotnost: %i\n", ps->hmotnost);
vypis_katalog(ps->nasledujici);
printf("Radialni rychlost: %i\n", ps->radial_rychlost);
vypis_katalog(ps->nasledujici);
printf("Jasnost: %i\n", ps->jasnost);
vypis_katalog(ps->nasledujici);
printf("Nazev: %c\n", ps->nazev);
vypis_katalog(ps->nasledujici);
};
int main() {
FILE *fa;
fa = fopen("/home/teodor/Plocha/parametry_exoplanet.txt", "w");
if(fa == NULL) {
fputs("Nelze otevrit soubor!\n", stderr);
return 1;
} else if(fa != NULL) {
printf("Soubor uspesne otevren!\n");
}
int a, b, c;
char jmeno[ROZSAH];
printf("Zadejte radialni rychlost: \n");
scanf("%d", &a);
printf("Zadejte jasnost: \n");
scanf("%d", &b);
printf("Zadejte hmotnost: \n");
scanf("%d", &c);
printf("Zadejte nazev: \n");
scanf("%c", &jmeno);
KATALOG *s;
s = NULL;
vloz_parametr(&s, a, b, c);
// fprintf(fa, "%d%d%d\n", a, b, c);
vypis_katalog(s);
fclose(fa);
return 0;
}
Bude mi stačit nějaký nakopnutí, u názvu nechci mít dynamicky přidělenou paměť. Název nebude obsahovat mezery, jen jedno slovo.