c++ łączenie programów

0

Witam, niedawno zacząłem zabawę z c++ (używam code::Blocks) i proszę o pomoc bardziej zaawansowanych użytkowników/forumowiczów w takiej kwestii:

mam 4 programy i chciałbym się dowiedzieć jak można je połączyć (czy jest taka możliwosć) jakich komend/skryptów użyć.
Mówiąc wprost, po prostu jak mam to napisać aby działało i spełniało swoją funkcję.
Poniżej zamieszczam te programy:

1. Zapis do pliku tekstowego

#include<stdio.h>
#include<conio.h>

int main()
{
    FILE *out;
    float pi = 3.1415;
    int i = 100;
    char znak = 'A';

    // otwarcie pliku tekstowego do zapisu
    if ((out = fopen("plik tekstowy.txt", "wt"))==NULL)
    {
    fprintf(stderr,"Nie mozna otworzyc pliku.\n");
    return 1;
    }

    // fprintf - zapis do pliku out
    fprintf(out,"\n Raport z programu\n\n");
    fprintf(out,"Wydruk zmiennej typu float pi = %6.4f \n",pi);
    fprintf(out,"Wydruk zmiennej typu int i = %3i \n",i);
    fprintf(out,"Wydruk zmiennej typu char znak = %c \n",znak);

    // zamkniecie pliku
    fclose(out);
    printf("\nDane zostaly zapisane do pliku plik tekstowy.txt");
    getch();
    return 0;
}

2. Odczyt z pliku tekstowego

#include<stdio.h>
#include<conio.h>
int main()

{
FILE *in;
char bufor[512];

// otwarcie pliku tekstowego do odczytu: rt
if ((in = fopen("plik tekstowy.txt", "rt"))==NULL)
{
fprintf(stderr, "\nBlad otwarcia pliku dyskowego!\n");
return 1;
}
printf("\n zawartosc pliku: plik tekstowy.txt\n");

// odczyt z pliku
while (feof(in)==0)     // (koniec pliku)
{
fgets(bufor,512, in);   // odczyt jednej linii tekstu
printf("%s",bufor);
}

// zamkniecie pliku
fclose(in);
getch();
return 0;
}

3. Zapis do pliku binarnego

#include<stdio.h>
#include<stdlib.h>
#include<string.h> //memset

// definicja struktury osoba
typedef struct {
char imie[25];
char nazwisko[25];
int wiek;
} osoba;

int main()
{
FILE *plik;
int n, i;
osoba ludzie[100];

memset (ludzie, 0, sizeof(ludzie)); // czyszczenie tablicy ludzie

printf("Zapisywanie rekordow do pliku\n\r");
printf("Ile rekordow chcesz zapisac ? :\n");
scanf("%i",&n);

// otwarcie pliku do zapisu - handler: uchwyt pliku
if ((plik = fopen("records.dat", "wb")) == NULL)
{
printf("Blad otwarcia pliku\n");
return 1;
}
// ustawienie pozycji w pliku na poczatek
fseek(plik, 0L, SEEK_SET);

for (i = 1; i<=n; i++)
{
printf("\n Imie:");
scanf("%s",ludzie[i].imie);
printf(" Nazwisko:");
scanf("%s",ludzie[i].nazwisko);
printf(" Wiek:");
scanf("%i",&ludzie[i].wiek);

// zapis jednego rekordu do pliku
fwrite(&ludzie[i], sizeof(osoba), 1, plik);
}

fclose(plik);
system("pause");
return 0;
}

4. Odczyt z pliku binarnego:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

// definicja struktury osoba
typedef struct {
char imie[25];
char nazwisko[25];
int wiek;
} osoba;

int main()
{
FILE * plik;
int n, licznik=-1;
osoba ludzie[100];
printf("\n\rProgram odczytuje liste rekordow z pliku records.dat\n\r");
memset (ludzie,0, sizeof(ludzie));      // czyszczenie tablicy ludzie

// otwarcie pliku do odczytu - plik: uchwyt pliku
if ((plik = fopen("records.dat","rb")) ==NULL)
{
printf("Blad otwarcia pliku\n");
return 1;
}

// ustawienie pozycji w pliku na poczatek
fseek(plik, 0L, SEEK_SET);
// odczyt kolejnych rekordow
while(1)
{
licznik++;
// odczyt jednego rekordu
fread(&ludzie[licznik], sizeof(osoba),1, plik);

if(feof(plik))break;            // wyjscie z petli jezeli koniec pliku

printf("\n\r Nr rekordu:%i\n\r",licznik);
printf(" Imie: %s\n\r", ludzie[licznik].imie);
printf(" Nazwisko: %s\n\r", ludzie[licznik].nazwisko);
printf(" Wiek: %i\n\r", ludzie[licznik].wiek);
};
printf("\n\rOdczytano %i rekord(y)ow\n\r", licznik);
fclose(plik);
system("pause");
return 0;
}

0

Stwórz z tego klasę/kilka funkcji.

0

Gdyby te programy były napisane z logicznym podziałem na funkcję, bez pakowania wszystkiego do main to połączanie wszystkiego do kupy nie trwałoby dłużej niż 2 minuty. Niestety tak nie jest, wiec teraz musisz to nadrobić (podział na funkcje).

1 użytkowników online, w tym zalogowanych: 0, gości: 1