program uruchamia sie i szybko znika - jezyk C
    Zaloguj FAQ  •  Szukaj    


Obecny czas: 08 Lut 2012, 14:05

Pomysł na Biznes to tylko krok do Twojego sukcesu. Sprawdź jak łatwo zostać milionerem.




Napisz nowy temat Odpowiedz  [ 5 posty(ów) ] 
Autor Wiadomość
 
PostWysłany: 14 Lis 2008, 13:01 
Offline
Lamer
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.


 Profil  
    unknownunknown

   
 
PostWysłany: 14 Lis 2008, 13:23 
Offline
HAKER
HAKER
Awatar użytkownika

Dołączenie: 02 Lis 2006, 23:21
Posty: 2475
Miejscowość: Garwolin
Pochwał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.


 Profil E-mail  
    unknownunknown
 
PostWysłany: 14 Lis 2008, 13:58 
Offline
Lamer
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;
}

/***********************************************************************************/


 Profil  
    unknownunknown
 
PostWysłany: 10 Kwi 2010, 11:32 
Offline
Lamer
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.


 Profil E-mail  
    WindowsVistaMozilla
 
PostWysłany: 31 Lip 2010, 21:39 
Offline
Komputerowiec
Komputerowiec
Awatar użytkownika

Dołączenie: 31 Lip 2010, 20:22
Posty: 101
Miejscowość: Gliwice
Pochwały: 4
Jeśli jedno getchar(); nie pomoże, to spróbuj napisać dwa razy. Mi często to rozwiązywało problem :]


 Profil E-mail  
    UbuntuFirefox
Wyświetl posty z poprzednich:  Sortuj według  
Napisz nowy temat Odpowiedz  [ 5 posty(ów) ] 

Ciekawe tematy: Biznes reklamowy:D oraz Logistyka światowych przedsiębiorstw.






Suknie Ślubne na tę wyjątkową chwilę. Zapraszamy!

phpBB skin developed by: John Olson Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group