Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    Convertire un char in un ascii

    Allora ho creato questa funzione che legge quello che c'è scritto in un file di testo e lo riscrive sullo standard output carattere per carattere.
    Una volta letto, il file è associato a StreamDaFile, che viene letto in un ciclo for e carattere per carattere assegnato al buffer Car.
    Quello che vorrei ottenere è che non venga stampato tutto ciò che è diverso da un numero.
    Quindi considerando l'ascii dico che Car debba essere compreso strettamente tra 48 e 57, ma quando compilo mi dice: comparison between pointer and integer. Idee??
    codice:
    void funzione ()
    {
      FILE *StreamDaFile;
      char Car[4];
      int i = 0,
          j = 0;
    
      StreamDaFile = fopen ("file.txt", "r");
      while(i < 89)
      {
          fscanf(StreamDaFile, "%c", Car);
    
          if (Car>=48 && Car<=57)
          {
            printf(Car);
            i++;
          }
      }
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se Car deve essere un solo carattere, perche' lo hai dichiarato cosi'

    char Car[4];

    ?

    Questo e' un array di 4 caratteri (e quindi Car e' il puntatore al primo elemento).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    io in Car vorrei memorizzare il carattere letto nel file di testo come ASCII, ecco perché è 4 caratteri.

  4. #4
    Un carattere "in ASCII" occupa 7 bit. Un carattere "in ASCII esteso" occupa 8 bit.
    Quindi in un char ci sta
    codice:
    void funzione ()
    {
      FILE *StreamDaFile;
      char Car;
      int i = 0,
          j = 0;
    
      StreamDaFile = fopen ("file.txt", "r");
      while(i < 89)
      {
          fscanf(StreamDaFile, "%c", &Car);
    
          if (Car>=48 && Car<=57)
          {
            printf("%c",Car);
            i++;
          }
      }
    }
    Experience is what you get when you don’t get what you want

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Metallica
    io in Car vorrei memorizzare il carattere letto nel file di testo come ASCII, ecco perché è 4 caratteri.
    Non comprendo l'equivalenza carattere ASCII -> 4 caratteri ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Anziché confrontare il codice con 48 e 56, utilizza piuttosto le portabili isprint, isalpha ecc...

    p.s. nel titolo non è specificato il linguaggio

  7. #7
    Originariamente inviato da MacApp
    Anziché confrontare il codice con 48 e 56, utilizza piuttosto le portabili isprint, isalpha ecc...

    p.s. nel titolo non è specificato il linguaggio
    Oppure semplicemente le constanti '0', '9' ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.