Problema Pila/Getchar

di il
13 risposte

Problema Pila/Getchar

Buongiorno,
sono alle prese con un programma che usando una pila mi trasforma da infissa a postfissa un'espressione... Nelle istruzioni vi è scritto che devo leggere l'espressione con Getchar() e qui sono cominciati i problemi...non riesco a fargli capire il codice al compilatore! Ogni volta mi da sempre errore o non mi legge le variabili! Qualcuno cortesemente potrebbe darmi una mano a cambiare il main in modo che invece di usare strcpy usi Getchar()? Ve ne sarei eternamente grata


    int main()

    {
    	char in[10],post[10];
    	strcpy(&post[0],"");
    	printf(" ");
    	fflush(stdin);
    	gets(in);
    	infissapostfissa(&in[0],&post[0],1);
    	printf("%s\n",&post[0]);
    	return 0;
    }

13 Risposte

  • Re: Problema Pila/Getchar

    non riesco a fargli capire il codice!
    A chi ?
  • Re: Problema Pila/Getchar

    oregon ha scritto:


    non riesco a fargli capire il codice!
    A chi ?
    al compilatore... non riesco a costruire un getchair() che mi legga tutte le variabili.
  • Re: Problema Pila/Getchar

    Il compilatore non "capisce" ...

    Spiegati meglio perché neanch'io ho capito nulla ...

    Soprattutto cerca di spiegarti in maniera più "tecnica", questo è un forum di programmatori ...

    Hai scritto del codice per fare quello che vuoi? Hai avuto degli errori di compilazione?
    Quale codice? Quali errori?
  • Re: Problema Pila/Getchar

    oregon ha scritto:


    Il compilatore non "capisce" ...

    Spiegati meglio perché neanch'io ho capito nulla ...
    Scusa...
    Il programma deve leggere l’espressione con la funzione getchar e successivamente deve stampare la sua postfissa.
  • Re: Problema Pila/Getchar

    L'espressione attualmente la legge con la

    gets(in);

    che ottiene in input una stringa.

    La getchar ottiene in input un solo carattere, quindi ti serve un ciclo in cui inserisci la getchar.

    Ma perché non puoi utilizzare la gets ?
  • Re: Problema Pila/Getchar

    Sono io che non la vedo o la getchar non c'è?
  • Re: Problema Pila/Getchar

    La getchar non c'è ... infatti la vorrebbe usare al posto della gets ...

    Ma se ha scritto quel codice, sarà pure capace di un ciclo con la getchar ...
  • Re: Problema Pila/Getchar

    oregon ha scritto:


    Il compilatore non "capisce" ...

    Spiegati meglio perché neanch'io ho capito nulla ...

    Soprattutto cerca di spiegarti in maniera più "tecnica", questo è un forum di programmatori ...

    Hai scritto del codice per fare quello che vuoi? Hai avuto degli errori di compilazione?
    Quale codice? Quali errori?
    Il codice è quello che ho postato... per leggere le variabili ho usato le funzioni della libreria string.h ovvero strcpy, fflush e gets. Fin qui tutto bene, il compilatore non mi da alcun errore ed il programma esegue correttamente tutte le istruzioni.
    Purtroppo nello scrivere il programma non mi sono accorta di aver sbagliato a compilare poichè richiedeva che l'espressione doveva essere letta utilizzando il Getchar() in stardard input così ho provato a modificare il man() finale usando la funzione richiesta. Non essendo un'esperta ho provato a seguire l'istruzione del getchar usando il libro di testo in mio possesso. Ho provato con while (in=getchar() |=EOF) ma mandando in eseguzione il programma non riesco più a visualizzare la postfissa dell'espressione in quanto il programma mi notifica che c'è un errore nella variabile da me impostata. Il mio problema è proprio questo ovvero la mia totale incapacità di scrivere l'istruzione getchar() in modo che mi legga l'infissa correttamente.
    Scusate per il mio poco tecnicismo ma sono ancora inesperta e sto imparando da poco il mondo del C
  • Re: Problema Pila/Getchar

    oregon ha scritto:


    L'espressione attualmente la legge con la

    gets(in);

    che ottiene in input una stringa.

    La getchar ottiene in input un solo carattere, quindi ti serve un ciclo in cui inserisci la getchar.

    Ma perché non puoi utilizzare la gets ?
    Perchè nelle istruzioni richiede solo la getchar()

    dvaosta ha scritto:


    Sono io che non la vedo o la getchar non c'è?
    No infatti non c'è... ho sempre usato la gets per leggere la stringa di caratteri e questa nuova istruzione nel programma mi ha spiazzata perchè non l'ho mai usata per caricare più di un carattere.
  • Re: Problema Pila/Getchar

    katycats ha scritto:


    Il codice è quello che ho postato...
    Io intendevo il codice con i tuoi tentativi con la getchar.
    per leggere le variabili ho usato le funzioni della libreria string.h ovvero strcpy
    strcpy non serve a leggere nulla, anzi non serve in quel codice.
    aver sbagliato a compilare
    Non hai sbagliato a compilare ma a scrivere il codice richiesto dall'esercizio ...
    Non essendo un'esperta ho provato a seguire l'istruzione del getchar usando il libro di testo in mio possesso. Ho provato con while (in=getchar() |=EOF) ma mandando in eseguzione il programma non riesco più a visualizzare la postfissa dell'espressione in quanto il programma mi notifica che c'è un errore nella variabile da me impostata.
    Beh ... hai scritto tutto quel codice zeppo di puntatori e tutto il resto e non sai scrivere un ciclo con una funzione semplice come la getchar?

    In ogni caso, lo vediamo questo codice con il tuo tentativo?
  • Re: Problema Pila/Getchar

    oregon ha scritto:


    katycats ha scritto:


    Il codice è quello che ho postato...
    Io intendevo il codice con i tuoi tentativi con la getchar.
    per leggere le variabili ho usato le funzioni della libreria string.h ovvero strcpy
    strcpy non serve a leggere nulla, anzi non serve in quel codice.
    aver sbagliato a compilare
    Non hai sbagliato a compilare ma a scrivere il codice richiesto dall'esercizio ...
    Non essendo un'esperta ho provato a seguire l'istruzione del getchar usando il libro di testo in mio possesso. Ho provato con while (in=getchar() |=EOF) ma mandando in eseguzione il programma non riesco più a visualizzare la postfissa dell'espressione in quanto il programma mi notifica che c'è un errore nella variabile da me impostata.
    Beh ... hai scritto tutto quel codice zeppo di puntatori e tutto il resto e non sai scrivere un ciclo con una funzione semplice come la getchar?

    In ogni caso, lo vediamo questo codice con il tuo tentativo?

    Questo è il codice finale che aggiungo al posto dell'altro main()
    
    
    int main()
    {
    	char in[10],post[10];
    
    	in = getchar();
    
    	while ( in != EOF ) {
    		putchar(in);
    		in = getchar();
          
           infissapostfissa(&in[0],&post[0],1);
           printf("%s\n",&post[0]);
           return 0;
        }
    	}
    
  • Re: Problema Pila/Getchar

    Il ciclo non deve comprendere la conversione seguente ... la putchar non serve ... in non è una variabile semplice ma un vettore, devi usare un indice ...

    Ma tu non hai completamente le basi della programmazione C, altro che solo la getchar ... ma come hai scritto tutto quel codice? Evidentemente non lo hai fatto tu ...

    Occhio che in questo forum è vietato chiedere soluzione di esercizi che non si sanno fare ...
  • Re: Problema Pila/Getchar

    oregon ha scritto:


    Il ciclo non deve comprendere la conversione seguente ... la putchar non serve ... in non è una variabile semplice ma un vettore, devi usare un indice ...

    Ma tu non hai completamente le basi della programmazione C, altro che solo la getchar ... ma come hai scritto tutto quel codice? Evidentemente non lo hai fatto tu ...

    Occhio che in questo forum è vietato chiedere soluzione di esercizi che non si sanno fare ...
    Ho provato a farlo seguendo il libro e sinceramente ho una grande confusione in testa... proverò a fare quello che mi hai consigliato tu e scusa per il disturbo.
Devi accedere o registrarti per scrivere nel forum
13 risposte