|
| Autor |
Wiadomość |
|
aga.
|
Wysłany: 14 Lis 2008, 13:01 |
|
 |
| Lamer |
 |
Dołączenie: 10 Lis 2008, 10:57 Posty: 3
|
|
witam,
mam taki problem: otoz wklejam kod programu do Dev C++ odpowiednio zapisuje, program sie kompiluje bez zadnych bledow, uruchamiam go. wyskakuje czarne okienko i momentalnie znika.
dopisywalam getch(); ,ale nic to nie zmienilo.
czy ktos moze wie o co chodzi? byc moze chodzi o to,ze programuje w windowsie...? bede bardzo wdzieczna za pomoc.
|
|
|
|
 |
|
Linki Sponsorowane
|
|
|
|
|
|
|
 |
|
demonix
|
Wysłany: 14 Lis 2008, 13:23 |
|
Dołączenie: 02 Lis 2006, 23:21 Posty: 2475 Miejscowość: GarwolinPochwały: 8
|
|
start > uruchom > wpisujesz cmd
i wchodzisz w katalog w którym jest twój skompilowany program i wpisujesz jego nazwę.
Mam nadzieje Że wiesz jak uŻywać komend dosa. £atwiej będzie coś powiedzieć jeśli wkleisz cały kod programu.
|
|
|
|
 |
|
aga.
|
Wysłany: 14 Lis 2008, 13:58 |
|
 |
| Lamer |
 |
Dołączenie: 10 Lis 2008, 10:57 Posty: 3
|
|
oto kod:
/*************libreris****************/
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <ctype.h>
/*********** inicjacje***************/
FILE *plikwejsciowy;
struct osoba
{
char imie [50];
char nazwisko [50];
int wiek;
};
struct osoba ** lista;
/*****funkszons deklarejszons******/
int funkcja_czytacz ( char nazwapliku[] );
void funkcja_sortownik ( int liczbarekordow, char kryterium[] );
void funkcja_wyswietlacz ( int liczbarekordow, char kryterium[] );
/**********************************************************************************/
/**************main***************************************************************/
int main ( int argc, char *argv[] )
{
int iloscrekordow = 0;
int licznikdoforow;
/********warunki glupoodporne********/
if ( argv[1] == NULL )
{
printf ("\n Prosze podac poprawna nazwe pliku wejsciowego.. \n");
exit(1);
}
if ( argv[2] == NULL )
{
printf ("\n Prosze podac parametr wzgledem ktorego bedzie analizowana baza danych... \n");
exit(1);
}
if ( ( argv [2][0] != 'i' ) && ( argv [2][0] != 'n' ) && (argv [2][0] != 'w') )
{
printf ("\n Prosze podac poprawny parametr: i/n/w ... \n");
exit (1);
}
if ( argv [2][1] != '\0')
{
printf ("\n Jako drugi parametr podano wiecej niz jeden znak! \n Pod uwage zostanie wziety tylko pierwszy...\n");
}
/*************************************/
iloscrekordow = funkcja_czytacz ( argv[1] );
funkcja_sortownik ( iloscrekordow, argv[2] );
funkcja_wyswietlacz ( iloscrekordow, argv[2] );
/****czyszczenie pamieci*******/
for (licznikdoforow=0; licznikdoforow < iloscrekordow; licznikdoforow++)
{
free ( lista [licznikdoforow] );
}
free ( lista );
/******************************/
return (0);
}
/**********************************************************************************/
/*************funkszons***********************************************************/
int funkcja_czytacz( char nazwapliku[] )
{
int iloscrekordow = 0;
char buforchar[100];
int buforint;
char *buforczesci;
char znak;
int sprawdzenie = 0;
int licznikdoforow;
int licznikdoforow2;
/***warunek glupoodporny***/
if ( ( plikwejsciowy = fopen (nazwapliku, "r") ) == NULL )
{
printf("\n Nie mozna otworzyc podanego pliku wejsciowego! \n");
exit (1);
}
/****zlicza ilosc rekordow****/
rewind(plikwejsciowy);
while (znak != EOF)
{
znak = fgetc (plikwejsciowy);
if (znak == '\n' ) { iloscrekordow++; }
}
fseek (plikwejsciowy, -1, SEEK_END);
znak = fgetc (plikwejsciowy);
if (znak != '\n') { iloscrekordow++; }
/****alokuje pamiec**********/
lista = (struct osoba **) malloc ( iloscrekordow * sizeof(struct osoba *) );
for(licznikdoforow = 0 ; licznikdoforow < iloscrekordow; licznikdoforow++)
{
lista [licznikdoforow] = (struct osoba *) malloc ( sizeof(struct osoba) );
}
/***Wczytanie rekordow do tablicy***/
rewind (plikwejsciowy);
for (licznikdoforow=0; licznikdoforow < iloscrekordow; licznikdoforow++)
{
fscanf (plikwejsciowy, "%s", buforchar);
for ( licznikdoforow2 =0; licznikdoforow2 < strlen(buforchar); licznikdoforow2++)
{
znak = buforchar[licznikdoforow2];
if ( znak == ';' ){ sprawdzenie++; }
}
if ( sprawdzenie != 2 )
{
printf ("\n W rekordzie numer %d jest blad \n\n", licznikdoforow);
exit(1);
}
buforczesci = strtok (buforchar, ";");
strcpy (lista[licznikdoforow] -> imie, buforczesci);
buforczesci = strtok (NULL, ";");
strcpy (lista[licznikdoforow] -> nazwisko, buforczesci);
buforczesci = strtok (NULL, ";");
if ( isdigit(buforczesci[0]) == 0 )
{
printf ("\n W rekordzie numer %d jest blad we wpisie wieku \n\n", licznikdoforow);
exit(1);
}
buforint = strtoul (buforczesci, NULL, 0);
lista[licznikdoforow] -> wiek = buforint;
sprawdzenie =0;
}
/********************************/
fclose (plikwejsciowy);
return (iloscrekordow);
}
/**********************************************************************************/
void funkcja_sortownik ( int liczbarekordow, char kryterium[] )
{
int licznikdoforow1, licznikdoforow2;
struct osoba bufor;
if ( kryterium[0] == 'i' )
{
for( licznikdoforow1=0; licznikdoforow1 < liczbarekordow; licznikdoforow1++ )
{
for ( licznikdoforow2=licznikdoforow1; licznikdoforow2 < liczbarekordow; licznikdoforow2++ )
{
if ( strcmp (lista[licznikdoforow1] -> imie, lista[licznikdoforow2] -> imie) > 0 )
{
bufor = *lista[licznikdoforow1];
*lista[licznikdoforow1] = *lista[licznikdoforow2];
*lista[licznikdoforow2] = bufor;
}
}
}
}
if ( kryterium[0] == 'n' )
{
for( licznikdoforow1=0; licznikdoforow1 < liczbarekordow; licznikdoforow1++ )
{
for ( licznikdoforow2=licznikdoforow1; licznikdoforow2 < liczbarekordow; licznikdoforow2++ )
{
if ( strcmp (lista[licznikdoforow1] -> nazwisko, lista[licznikdoforow2] -> nazwisko) > 0 )
{
bufor = *lista[licznikdoforow1];
*lista[licznikdoforow1] = *lista[licznikdoforow2];
*lista[licznikdoforow2] = bufor;
}
}
}
}
if ( kryterium[0] == 'w' )
{
for( licznikdoforow1=0; licznikdoforow1 < liczbarekordow; licznikdoforow1++ )
{
for ( licznikdoforow2=licznikdoforow1; licznikdoforow2 < liczbarekordow; licznikdoforow2++ )
{
if ( lista[licznikdoforow2] -> wiek < lista[licznikdoforow1] -> wiek )
{
bufor = *lista[licznikdoforow1];
*lista[licznikdoforow1] = *lista[licznikdoforow2];
*lista[licznikdoforow2] = bufor;
}
}
}
}
return;
}
/***********************************************************************************/
void funkcja_wyswietlacz ( int liczbarekordow, char kryterium[] )
{
int licznikdoforow1;
printf ("\n");
if ( kryterium[0] == 'i' ) { printf ("\n Rekordy posegregowane wg. imienia: \n"); }
if ( kryterium[0] == 'n' ) { printf ("\n Rekordy posegregowane wg. nazwiska: \n"); }
if ( kryterium[0] == 'w' ) { printf ("\n Rekordy posegregowane wg. wieku: \n"); }
for ( licznikdoforow1=0; licznikdoforow1 < liczbarekordow; licznikdoforow1++ )
{
printf ("\n %s %s %d", lista[licznikdoforow1] -> imie, lista[licznikdoforow1] -> nazwisko, lista[licznikdoforow1] -> wiek);
}
printf ("\n\n");
return;
}
/***********************************************************************************/
|
|
|
|
 |
|
system
|
Wysłany: 10 Kwi 2010, 11:32 |
|
 |
| Lamer |
 |
Dołączenie: 10 Kwi 2010, 11:20 Posty: 1
|
|
Witam,
Na początku, w swoim programie dopisz:
# include <cionio.h> oraz na końcu instrukcję getch();
problem sprowadzał się do tego, że nie została dołączona biblioteka cionio.h.
|
|
|
|
 |
|
Condemned
|
Wysłany: 31 Lip 2010, 21:39 |
|
Dołączenie: 31 Lip 2010, 20:22 Posty: 101 Miejscowość: GliwicePochwały: 4
|
|
Jeśli jedno getchar(); nie pomoże, to spróbuj napisać dwa razy. Mi często to rozwiązywało problem :]
|
|
|
|
 |
|
|