HTML.it è il sito italiano del web publishing

[C] programma robot



scegli un altro forum
    Indietro   Ricarica   Avanti Invia una risposta

Autore
Discussione     
ciaomare
Utente di HTML.it



Registrato il: Oct 2010

Provenienza:

Messaggi: 11


ICQ:

MSN:

Skype:


[C] programma robot
ciao a tutti! devo seguire le istruzioni per far muovere un punto che parte in x,y(0,0).

le istruzione dentro prova sono "sgsgsgd"
s sta per SU
g sta per GIU
d sta per DESTRA

è molto intuitivo e semplice ma non capisco perchè usando fgetc(f).. mi legge un carattere si e uno no... infatti mettedo un printf nel ciclio while si nota come mi prenda (s,s,s,d)... in pratica salta un carattere si e uno no... sapete perchè?


inoltre non mi aumenta il contatore della x!








codice:

#include <stdio.h>


int main (void) {


FILE *f;

f=fopen ("prova.txt", "r");

int x=0;
int y=0;
int a;


                while ((a=fgetc(f) )!=EOF) {
printf ("%d\n", a);
                    a=(fgetc(f));
                       if ( a==115)
                       y++;
                else if (a==103)
                        y--;
                else if (a==100)
                        x++;
                }

                printf ("il punto su trova in: %d%d", x,y);





fclose(f);
return 0;
}

Segnala ad un moderatore | IP: Collegato | Permalink

ciaomare è offline Old Post 23-06-2012 17:08
Clicca qui per vedere il profilo dell'utente ciaomare Clicca qui per inviare all'utente ciaomare un messaggio privato Visualizza ulteriori messaggi scritti dall'utente ciaomare Aggiungi l'utente ciaomare alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
celtico94
Utente di HTML.it



Registrato il: Apr 2012

Provenienza:

Messaggi: 32


ICQ :

MSN :

Skype :


tu fai:

codice:
while ((a=fgetc(f) )!=EOF) 
{ 
        printf ("%d\n", a); 
        a=(fgetc(f));
        ...


e poi controlli con gli if la a, la tu ne hai già bruciata una perchè nel ciclo leggi un carattere,ma dopo lo butti sovrascrivendo con il carattere successivo. per quanto riguarda la x, forse a non è mai 100!

Segnala ad un moderatore | IP: Collegato | Permalink

celtico94 è offline Old Post 23-06-2012 18:29
Clicca qui per vedere il profilo dell'utente celtico94 Clicca qui per inviare all'utente celtico94 un messaggio privato Visualizza ulteriori messaggi scritti dall'utente celtico94 Aggiungi l'utente celtico94 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
torn24
Utente di HTML.it



Registrato il: Aug 2008

Provenienza:

Messaggi: 299


ICQ :

MSN :

Skype :


ciao
celtico94 ti ha detto esattamente il problema .

vorrei spiegarlo in maniera più semplice

leggi il carattere all'interno del while (a=fgetc(f)...
poi leggi nuovamente un carattere a=fgetc(f);

quindi leggi due caratteri a ogni ciclo , e controlli solo il secondo

togli a=fgetc(f); , e leggerai un carattere alla volta e lo confronterai


__________________
Tecnologia

Segnala ad un moderatore | IP: Collegato | Permalink

torn24 è offline Old Post 25-06-2012 10:26
Clicca qui per vedere il profilo dell'utente torn24 Clicca qui per inviare all'utente torn24 un messaggio privato Visualizza ulteriori messaggi scritti dall'utente torn24 Aggiungi l'utente torn24 alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Tutte le ore sono con fuso orario CET. Ora sono le 01:21.     

    Ultima discussione   Prossima discussione Invia una risposta
Versione per la stampa | Invia il thread via email | Ricevi aggiornamenti sul thread | Scarica il thread
 

Cerchi un argomento specifico e hai fretta? Usa il motore di ricerca