Intercettare lo spazio

di il
14 risposte

Intercettare lo spazio

Buongiorno, vorrei intercettare lo spazio, per stamparlo come motivo di riempimento interno di una figura.

ho provato a scrivere il suo codice numerico

 if(CarattereInterno==32)  MotivoStampa=(' ');//Stampo il carattere vuoto
   else MotivoStampa=CarattereInterno;

Grazie dell'aiuto.

                                                                 //  Motivo
                                                                   //  11111
                                                                  //  2****2
                                                                  //  3****3
                                                                 //   4****4
                                                                 //    55555
 //Legenda PerInserire lo spazio digitare uno sulla tastiera
 #include <stdio.h>
int Size;
char MotivoStampa;
int CarattereInterno;
void Rettangolo(void);//Creo il prototiopo

int main()
{
    Rettangolo();//Richiamo La funzione

    return 0;
}
void Rettangolo(void)
{
printf("Inserisci La Dimensione del quadrato");
 scanf(" %d", &Size);
 printf("Inserisci il carattere di riempimento");
 scanf(" %c", &CarattereInterno);
 if(CarattereInterno==32)  MotivoStampa=(' ');//Stampo il carattere vuoto
    else MotivoStampa=CarattereInterno;
 //Creo il pòrimo ciclo che realizza le righe
  for (int i=1;i<=Size;i++)
  {
     for(int j=1;j<=Size;j++)
     {
         //Stampo il carattere desiderato riga per riga
         if(i==1 ||i==Size ||j==1 || j==Size) printf("%d", i);  //i==1Stampo il sopra del quadrato
                                                                // I=Size Stampo il sotto
                                                                //il=1  Stampo il lato sinistro del quadrato
                                                                //j==Size  Stampo il lato destro del quadrato
          else printf("%c", MotivoStampa);
     }
     printf("\n");
  }
}

14 Risposte

  • Re: Intercettare lo spazio

    #include <stdio.h>
     
    int Size;
    char CarattereInterno = '\n';
    void Rettangolo(void);//Creo il prototipo
    
    int main()
    {
        Rettangolo();//Richiamo La funzione
    
        return 0;
    }
    
    void Rettangolo(void)
    {
     printf("Inserisci la dimensione del quadrato: "); fflush(stdout);
     scanf(" %d", &Size);
     printf("Inserisci il carattere di riempimento: "); fflush(stdout);
     while(CarattereInterno == '\n' || CarattereInterno == '\r')
           CarattereInterno = getchar();
    
      //Creo il primo ciclo che realizza le righe
      for (int i=1;i<=Size;i++)
      {
         for(int j=1;j<=Size;j++)
         {
             //Stampo il carattere desiderato riga per riga
             if(i==1 ||i==Size ||j==1 || j==Size) printf("%d", i);  //i==1Stampo il sopra del quadrato
                                                                    // I=Size Stampo il sotto
                                                                    //il=1  Stampo il lato sinistro del quadrato
                                                                    //j==Size  Stampo il lato destro del quadrato
              else printf("%c", CarattereInterno);
         }
         printf("\n");
      }
    }
  • Re: Intercettare lo spazio

    Funziona. Qual è il problema?

  • Re: Intercettare lo spazio

    02/12/2023 - Alexv ha scritto:


    Funziona. Qual è il problema?

    Grazie, Funziona, volevo riempire l'interno del quadrato con un motivo, a scelta, asterisco,cancelletto, carattere vuoto, se premenvo la barra spaziatrice, etc.

    Quest'ultimo non capivo come gestire, perchè pure se intercettavo il codice ascci (13), non accadeva nulla.

    Volevo scrivere proprio questo CarattereInterno==13

  • Re: Intercettare lo spazio

    Chiedo scusa avevo copiato il codice di Weierstrass, che funziona anche con gli spazi.

  • Re: Intercettare lo spazio

    Io non ho capito quasi nulla di questo thread, a parte l'ovvia risposta di weierstrass

  • Re: Intercettare lo spazio

    02/12/2023 - oregon ha scritto:


    Io non ho capito quasi nulla di questo thread, a parte l'ovvia risposta di weierstrass

    La versione di Antonio-Sim non funziona quando inserisci lo spazio come carattere di riempimento.

  • Re: Intercettare lo spazio

    01/12/2023 - Weierstrass ha scritto:


    #include <stdio.h>
     
    int Size;
    char CarattereInterno = '\n';
    void Rettangolo(void);//Creo il prototipo
    
    int main()
    {
        Rettangolo();//Richiamo La funzione
    
        return 0;
    }
    
    void Rettangolo(void)
    {
     printf("Inserisci la dimensione del quadrato: "); fflush(stdout);
     scanf(" %d", &Size);
     printf("Inserisci il carattere di riempimento: "); fflush(stdout);
     while(CarattereInterno == '\n' || CarattereInterno == '\r')
           CarattereInterno = getchar();
    
      //Creo il primo ciclo che realizza le righe
      for (int i=1;i<=Size;i++)
      {
         for(int j=1;j<=Size;j++)
         {
             //Stampo il carattere desiderato riga per riga
             if(i==1 ||i==Size ||j==1 || j==Size) printf("%d", i);  //i==1Stampo il sopra del quadrato
                                                                    // I=Size Stampo il sotto
                                                                    //il=1  Stampo il lato sinistro del quadrato
                                                                    //j==Size  Stampo il lato destro del quadrato
              else printf("%c", CarattereInterno);
         }
         printf("\n");
      }
    }

    Ciao Weierstrass, ho usato il tuo codice e funziona ,vorrei capire, perchè adoperando getchar, affinche il programma di prova che scrivo ,per adoperare tale funzione,deve eseguire la dichiarazione della variabile e la sua assegnazione nel ciclo, invece nel tuo avviene tutto al difuori, come da conseitudine. Anche sul deitel ,viene tutto eseguito all'intero del ciclo.

    Il programma ,stampa il contenuto della variabile carattere, fin quando digito il punto, grazie della cortesia.

    #include <stdio.h>
    
    int main(void)
    {
       char Carattere='\n';
       printf("Inserire Una stringa");
       Carattere=getchar() ;
     
       while( Carattere  !='.' &&(Carattere!= '\n' || Carattere != '\r'))
       {
           putchar(Carattere);
       }   
    
      
    }
  • Re: Intercettare lo spazio

    Non ho capito la domanda, scusa ma è veramente incomprensibile.

    Vuoi sapere perché la dichiarazioe della variabile sta dentro o fuori dal main?

    Cambia la visibilità della variabile ma non è importante ai fini del piccolo codice che stai provando.

    Leggi sul Deitel il capitolo sulla visibilità delle variabili nel linguaggio C.

    Ma adesso questo thread è risolto o no? 

  • Re: Intercettare lo spazio

    09/12/2023 - oregon ha scritto:


    Non ho capito la domanda, scusa ma è veramente incomprensibile.

    Vuoi sapere perché la dichiarazioe della variabile sta dentro o fuori dal main?

    Cambia la visibilità della variabile ma non è importante ai fini del piccolo codice che stai provando.

    Leggi sul Deitel il capitolo sulla visibilità delle variabili nel linguaggio C.

    Ma adesso questo thread è risolto o no? 

    Si li thread è risolto,ho riscontrato un problema nell'usare get char , poichè come l'ho scritto il programma non funziona.

    Affinchè venga eseguito correttamente la scrittura  Carattere=getchar ,deve avvenire nel while

    e no esternamente

    #include <stdio.h>
    
    int main(void)
    {
       char Carattere='\n';
       printf("Inserire Una stringa");
        ;
     
       while( Carattere !='.' )
       {
           Carattere=getchar();
           putchar(Carattere);
       }   
    
      
    }
  • Re: Intercettare lo spazio

    Se il thread è risolto per altre questioni devi aprirne un altro.

    Comunque è ovvio che la getchar deve essere nel ciclo se devi fare l'input di più caratteri. Altrimenti ne accetti uno solo.

    Ma questa è una cosa ovvia, che esula dalla programmazione.

  • Re: Intercettare lo spazio

    10/12/2023 - oregon ha scritto:


    Se il thread è risolto per altre questioni devi aprirne un altro.

    Comunque è ovvio che la getchar deve essere nel ciclo se devi fare l'input di più caratteri. Altrimenti ne accetti uno solo.

    Ma questa è una cosa ovvia, che esula dalla programmazione.

    Grazie della risposta, ho riletto l'argomento e compreso quanto da te spiegato, Grazie di nuovo, scusa se pongo domande banali.

  • Re: Intercettare lo spazio

    11/12/2023 - Antonio-Sim ha scritto:


    scusa se pongo domande banali.

    Non ti devi affatto scusare ma devi seguire i consigli che ti si danno. Così sicuramente imparerai e non porrai altre domande su argomenti già affrontati.

    Non mi è chiaro se studi da solo o in un corso/scuola, con un docente o senza, se hai un background di conoscenze di altri linguaggi, se sei giovane/meno giovane. In ogni caso, se studi e rifletti opportunamente su ogni argomento studiato, puoi e devi andare avanti ed essere sempre più autonomo.

  • Re: Intercettare lo spazio

    11/12/2023 - oregon ha scritto:


    11/12/2023 - Antonio-Sim ha scritto:


    scusa se pongo domande banali.

    Non ti devi affatto scusare ma devi seguire i consigli che ti si danno. Così sicuramente imparerai e non porrai altre domande su argomenti già affrontati.

    Non mi è chiaro se studi da solo o in un corso/scuola, con un docente o senza, se hai un background di conoscenze di altri linguaggi, se sei giovane/meno giovane. In ogni caso, se studi e rifletti opportunamente su ogni argomento studiato, puoi e devi andare avanti ed essere sempre più autonomo.

    Ciao Oregon, non sono studente, ma un operaio metalmeccanico autodidatta cinquantenne. Sono diplomato  da perito elettronico, non ho mai lavorato nel mio campo, anche se mi è rimasto l'interesse .Ho imparato il visual basic ,programmato a livello hobbistico i pic in basic, mi sono avvicinato al c , complice arduino. Però mi sono reso conto che in questa piattaforma non c'erano esempi esaurienti di linguaggio base , anche se avrei dovuto studiare il c++, più simile allo pseudo c di arduino; Ho preferito il c per iniziare dalle fondamenta.Buona giornata

  • Re: Intercettare lo spazio

    Ottimo, continua così

Devi accedere o registrarti per scrivere nel forum
14 risposte