Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87

    risultato inatteso

    salve a tutti!
    ho scritto il seguente programma:

    #include<iostream.h>
    #include<string.h>

    int main()
    {
    char p;
    cout<<"Inserisci una parola\n";
    cin>>p;

    char a[p];
    cout<<"Nella parola "<< p <<" ci sono "<<sizeof a<<"bit\n";
    cout<<"La lunghezza della stringa è di" <<strlen(a)<<"bit\n";
    system("pause");
    return o;
    }

    praticamente quando stampa a video i bit della parola che inserisco, viene sempre fuori un numero maggiore di cento mentre per quanto riguarda la stringa il risultato mi torna.
    dove sbaglio?

  2. #2
    hai dimenticato di specificare nel titolo del 3D il linguaggio che usi, la prossima volta fai attenzione a non tralasciarlo.
    E soprattutto cerca di utilizzare titoli più comprensivi e riguardanti l'argomento che tratti nella discussione.
    Grazie

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87
    ah già...il linguaggio è il c++.
    però nel titolo mica posso metterci un poema. ho scritto "risultato inatteso" nel titolo perchè, appunto, dal programma che ho scritto non ottengo un risultato da me voluto.

  4. #4
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486

    Re: risultato inatteso

    Ci sono diversi errori e imprecisioni:

    #include<iostream.h>
    #include<string.h>

    Questi header sono deprecati, usa

    codice:
    #include <iostream>
    #include <string>
    Aggiungi inoltre

    codice:
    using namespace std;
    dopo la dichiarazione degli header.

    Poi, qui

    codice:
     char p;
     cout<<"Inserisci una parola\n";
     cin>>p;
    Stai chiedendo all'utente di inserire una parola all'interno di un char, che e' un singolo carattere. Dichiara una variabile stringa cosi'

    codice:
    string p;
    Infine, qui:

    codice:
     char a[p];
     cout<<"Nella parola "<< p <<" ci sono "<<sizeof a<<"bit\n";
     cout<<"La lunghezza della stringa è di" <<strlen(a)<<"bit\n";
     system("pause");
     return o;
    }
    Parli di bit, ma in realta' sembra che tu voglia usare dei byte.
    Inoltre dichiari un array di char e poi stampi la dimensione del puntatore al primo char.
    Non usare strlen del C ma usa il metodo length della classe string di C++, visto che stai scrivendo codice C++.

    codice:
    cout << "Nella parola "<< p <<" ci sono "<< p.length() <<"caratteri" << endl;
    Tieni presente infine che la lunghezza di una stringa e' equivalente alla sua dimensione in byte, in quanto un singolo carattere occupa un solo byte.

    Ripassa il libro di C++!
    ChReAn
    -------------------

    Slackware 9.1 powered

  5. #5
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87
    mh...io comunque ho studiato

    e quindi la lunghezza della stringa come la devo scrivere?

  6. #6
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486

    Re: Re: risultato inatteso

    Originariamente inviato da ChReAn

    Tieni presente infine che la lunghezza di una stringa e' equivalente alla sua dimensione in byte, in quanto un singolo carattere occupa un solo byte.
    ChReAn
    -------------------

    Slackware 9.1 powered

  7. #7
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    Ma esiste lenght()? ....io ho sempre usato size()...
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  8. #8
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87
    ok si però io volevo che lo facesse il computer!
    comunque questo è il programma riscritto:

    #include <iostream>
    #include <string>

    using namespace std;

    int main()
    {
    string p;
    cout<<"Inserisci una parola\n";
    cin>>p;

    cout <<"Nella parola "<< p <<" ci sono " <<p.length()<<" caratteri\n";
    cout<<"La lunghezza della stringa e'di " <<p.length()<<" byte\n";

    system("pause");
    return 0;
    }

    ok grazie dell'aiuto!

  9. #9
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    In che senso volevi che lo facesse il computer?
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  10. #10
    Utente di HTML.it L'avatar di mica81
    Registrato dal
    Nov 2003
    Messaggi
    87
    cioè volevo sapere come visualizzare la lunghezza della stringa. poi ragionandoci da me ho visto come fare.
    io l'avevo chiesto all'utente chrean come fare ma mi ha risposto con una frase.io volevo un pezzo di codice!
    lo so da me che, per esempio, in gatto ci sono 5 byte!
    volevo farlo visualizzare dall'elaboratore.
    comunque ci sono arrivato!
    :gren:

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 © 2024 vBulletin Solutions, Inc. All rights reserved.