Program losujacy nie chce sie kompilowac pod Windows





markusek - 01 Gru 2004 18:34
Wiam

Poniewaz nie jestem za dobry z programowania zwracam sie do was z prosba o pomoc w przerobieniu programiku w c, ktory bez problemu sie kompiluje i uruchamia pod linuxem. Na program, ktory mozna skompilowac pod windows i zrobic z niego exe. Pod windowsem plik kompiluje programem Dev-C++, ktory zawiera wszystkie podane w pliku biblioteki. A jednak nie chce się skompilowac. Prosze o pomoc !

zrodlo:

/* program losujacy punkty w zadanych przedzialach */
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
/* Generuje liczbe losowa z przedzialu 0 do size */
float gen_number( float size )
{
float number;
number=(size*rand()/(RAND_MAX+1.0));
return( number );
}
/* pobiera z stdin liczbe float */
float ask_number( void )
{
float number;
scanf("%f", &number);
return number;
}

int gen( char *filename )
{
float number;
int nobszarow, i, j, n;
float xsr, ysr, d;
FILE *file;
if(!filename)
return 1;
/* seed init */
srand((int)getpid());
/* plik z wynikami */
file=fopen(filename,"w");
if(file==NULL)
{
printf("File Open err\n");
return 1;
}
/* liczba obszarow */
printf("Podaj liczbe obszarow:");
nobszarow=(int)ask_number();

for( i=0; i<nobszarow; i++)
{
/* pobranie x, y, d i n */
printf("Obszar: %d\n",i+1);
printf("x srodka: ");
xsr=ask_number();
printf("y srodka: ");
ysr=ask_number();
printf("dlugosc boku: ");
d=ask_number();
printf("liczba punktow: ");
n=(int)ask_number();
for(j=0; j<n; j++)
{
/* losuje liczbe x i y i zapisuje ja z numerem */
/* obszaru w pliku */
number=gen_number(d);
fprintf(file, "%.02f ",xsr-(d/2.0)+number);
number=gen_number(d);
fprintf(file, "%.02f ",ysr-(d/2.0)+number);
fprintf(file, "%d\n",i+1);
}

}
fclose(file);
return 0;
}
int main( void )
{
return(gen("/dev/tty"));
}

DO POSTU ZALACZYLEM ZRODLO.

pozdrawiam i prosze o wskazowki i pomoc

markusek(małpa)interia.pl





brzoskwin - 01 Gru 2004 20:39
A możesz podac te biblioteki, z których korzytasz?



faber - 01 Gru 2004 22:25
Pod windowsem nie możesz użyć /dev/tty.
Jakie komunikaty pokazuje Dev-C++ ?



markusek - 02 Gru 2004 09:20
Dzieki za zainteresowanie tematem. Mam juz troszke przerobiony program lecz nadal sie nie kompiluje.

/* program losujacy punkty w zadanych przedzialach */
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
/* Generuje liczbe losowa z przedzialu 0 do size */
float gen_number( float size )
{
float number;
number=(size*rand()/(RAND_MAX+1.0));
return( number );
}
/* pobiera z stdin liczbe float */
float ask_number( void )
{
float number;
scanf("%f", &number);
return number;
}

int gen( char *filename )
{
float number;
int nobszarow, i, j, n;
float xsr, ysr, d;
FILE *file;
if(!filename)
return 1;
/* seed init */
//srand((int)getpid());
/* plik z wynikami */
file=fopen(filename,"w");
if(file==NULL)
{
printf("File Open err\n");
return 1;
}
/* liczba obszarow */
printf("Podaj liczbe obszarow:");
nobszarow=(int)ask_number();

for( i=0; i<nobszarow; i++)
{
/* pobranie x, y, d i n */
printf("Obszar: %d\n",i+1);
printf("x srodka: ");
xsr=ask_number();
printf("y srodka: ");
ysr=ask_number();
printf("dlugosc boku: ");
d=ask_number();
printf("liczba punktow: ");
n=(int)ask_number();
for(j=0; j<n; j++)
{
/* losuje liczbe x i y i zapisuje ja z numerem */
/* obszaru w pliku */
number=gen_number(d);
fprintf(file, "%.02f ",xsr-(d/2.0)+number);
number=gen_number(d);
fprintf(file, "%.02f ",ysr-(d/2.0)+number);
fprintf(file, "%d\n",i+1);
}

}
fclose(file);
return 0;
}
int main( void )
{
return(gen("plik.txt"));
}

PRZESYŁAM BIBLIOTEKI W SFX

pozdrawiam

markusek(małpa)interia.pl





markusek - 02 Gru 2004 11:47
Juz program mi sie kompiluje - znalazlem blad. Dzieki za pomoc