Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema nel dividere un array
Forum - C/C++ - Problema nel dividere un array

Avatar
DexterELEL (Normal User)
Pro


Messaggi: 67
Iscritto: 05/01/2011

Segnala al moderatore
Postato alle 19:23
Giovedì, 19/04/2012
Ragazzi ho creato questo programma però ho un piccolo problema in fase di stampa finale dovrei dividere la stringa ogni 8 bit ma non so proprio come fare.. qualche aiuto per favore? :hail:

Ecco il codice del programma
Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     int n, i;
  9.     char risp;
  10.     string bit = "";
  11.     int num = bit.length();
  12.     do
  13.     {
  14.     system("cls");
  15.     do
  16.     {
  17.     cout << "Inserisci N (Multiplo di 12): ";
  18.     cin >> n;
  19.     }
  20.     while((n%12) != 0);
  21.     do
  22.     {
  23.     cout << "Scrivi la sequenza dei " << n << " bit: " << endl;
  24.     cin >> bit;
  25.     }
  26.     while(bit.length() != n);
  27.     for (int i=0; i<num; i++)
  28.     {
  29.        cin >> bit[i];
  30.     }
  31.     cout << "Ecco il Risultato: ";
  32.     for (i=0;i<n;i++)
  33.     {
  34.         int h = i%12;
  35.         switch(h)
  36.         {
  37.             case 0:
  38.             break;
  39.             case 9:
  40.             break;
  41.             case 10:
  42.             break;
  43.             case 11:
  44.             break;
  45.             case 12:
  46.             break;
  47.             default:                        
  48.             cout << bit[i];
  49.             break;
  50.         }          
  51.      }
  52.      cout << endl;
  53.      cout << "Ripetere il programma? s/n: ";
  54.      cin >> risp;
  55.     }
  56.     while(risp == 's' || risp == 'S');
  57.     system("PAUSE");
  58.     return EXIT_SUCCESS;
  59. }


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:21
Giovedì, 19/04/2012
A parte il codice, ma che vorresti fare? Facci un esempio pratico ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
DexterELEL (Normal User)
Pro


Messaggi: 67
Iscritto: 05/01/2011

Segnala al moderatore
Postato alle 21:33
Giovedì, 19/04/2012
Il codice in pratica data una sequenza di n bit multiplo di 12 gli depura dal primo bit e gli ultimi 3 in pratica rimangono 8 bit però se do in input 24 bit ne dovrebbero rimanere 16 di questi 16 scritti così 0111101011001110 gli vorrei scritti così 01111010 11001110

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:18
Giovedì, 19/04/2012
Guarda ... il codice che hai scritto non è chiaro ma se vuoi visualizzare 8 caratteri di una stringa con uno spazio ogni 8 caratteri, ad esempio scrivi


string bit = "1111000011110000";

for(int i=0; i<bit.length(); i++)
{
    if(i%8 == 0 && i>0) cout << " ";
    cout << bit[ i ];
}


P.S. Non "gli vorrei scritti" ma "li vorrei scritti" ...

Ultima modifica effettuata da nessuno il 19/04/2012 alle 22:19


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
RiccardoG97 (Member)
Pro


Messaggi: 133
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 18:41
Domenica, 22/04/2012
Forse non ho capito molto bene la domanda ma penso che potresti usare l'operatore sizeof che restituisce il numero totale di byte presenti nell'array.

PM Quote
Avatar
osharko (Normal User)
Pro


Messaggi: 124
Iscritto: 16/04/2011

Segnala al moderatore
Postato alle 23:28
Giovedì, 26/04/2012
Testo quotato

Postato originariamente da RiccardoG97:

Forse non ho capito molto bene la domanda ma penso che potresti usare l'operatore sizeof che restituisce il numero totale di byte presenti nell'array.


no quello che vuole fare lui non riguarda la grandezza della stringa, o almeno non come hai detto tu.
Come proposto da nessuno comunque la soluzione è più che correta e affidabile ;)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:04
Venerdì, 27/04/2012
Testo quotato

Postato originariamente da RiccardoG97:

Forse non ho capito molto bene la domanda ma penso che potresti usare l'operatore sizeof che restituisce il numero totale di byte presenti nell'array.



sizeof è un operatore e non serve a restituire il numero totale di byte nell'array, almeno non sempre è utile a questo scopo.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote