Προς το περιεχόμενο

programma se C


bill___

Προτεινόμενες αναρτήσεις

Δημοσ.

mporei kapoios na me bohthisei me to parakato problhma pou prospatho

na to kano sthn C.

 

"Να γραφτεί ένα πρόγραμμα που θα διαβάζει κατ’ αρχήν ένα αρχείο από μια

δισκέτα (δώστε εσείς ένα όνομα στο αρχείο και χρησιμοποιείστε όποιες εντολές

θέλετε). Το αρχείο περιέχει 52 εγγραφές και σε κάθε εγγραφή στη σειρά 2

ακέραιους αριθμούς και ένα χαρακτήρα (π.χ. 13D). Ο χαρακτήρας είναι ένα γράμμα

του Λατινικού αλφάβητου (26 κεφαλαία και 26 πεζά) και οι αριθμοί εκφράζουν τις

συντεταγμένες στο επίπεδο του χαρακτήρα (x,y).

Στη συνέχεια το πρόγραμμα θα πρέπει να εμφανίζει στην οθόνη την απεικόνιση των

χαρακτήρων στο επίπεδο, δηλαδή ο κάθε χαρακτήρας να τοποθετείται στη θέση που ορίζουν οι συντεταγμένες του (0<x,y<10). Αν συμβεί στην ίδια θέση να υπάρχει

ήδη ένας χαρακτήρας τότε θα αντικαθίσταται."

 

basika ego den mporesa na diabaso tis times apo to arxeio :(

Δημοσ.

Kalo 8a htan na kaneis pio sygkekrimenes erwthseis kai oxi na zhtas genikh voh8eia panw se mia ergasia. Einai poly pi8ano me to deftero tropo na mh se voh8hsei o perissoteros kosmos, giati poly apla... einai dikh sou h ergasia!

Opws leei kai o Billman, dwse mas akrivws to provlhma. Kane mas na pistepsoume pws pragmatika to exeis psa3ei prin mas rwthseis. Tote sigoura 8a voh8hsoume, an 3eroume. An omws mas rwtas kati pou einai profanes pws den to exeis psa3ei ka8olou... to pio pi8ano einai na mhn pareis kamia apanthsh!

 

Perimenoume loipon na mas perigrapseis akrivws to provlhma sou, oson afora thn anagnwsh tou arxeiou

 

Filika

Dionisos

Δημοσ.

Έστω ότι το αρχείο είναι ένα text test.dat

82A

13B

17C

19D

90Z

 

Κώδικας:

 

>#include <stdio.h>

int _ReadData(char *pFilename)
{
 FILE  *Stream;
 char  szEntry[4];     // 4=> in C/C++ 0 is meaningful
 int   iX,iY,iChar;

 if((Stream=fopen(pFilename,"rt"))!=NULL)
  {
    // Read Text file until EOF
    while(fscanf(Stream,"%s",szEntry)!=EOF)
     {
       // Check variables consistency (the should be numbers)
       if(szEntry[0]<'0' || szEntry[0]>'9'
       || szEntry[1]<'0' || szEntry[1]>'9')
        { fclose(Stream); return -2; }

       iX=szEntry[0]-'0';
       iY=szEntry[1]-'0';
       iChar=szEntry[2];

       // Dump information ...
       printf("iX: %d\niY: %d\niChar: %c\n",iX,iY,iChar);
     }

    fclose(Stream);

    return 0;
  }
 else
  {
    return -1;
  }
}

void main(int argc,char *argv[])
{
 _ReadData(argv[1]); 
}

 

..νομίζω ότι δουλεύει σωστά σε κάθε περίπτωση (ελπίζω να μην έχω κάνει κανένα χοντρό λάθος..) –από εκεί και πέρα good – luck !

:D

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...