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++ - problemi con strcmp im while
Forum - C/C++ - problemi con strcmp im while

Avatar
bip (Normal User)
Rookie


Messaggi: 36
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 21:57
Giovedì, 25/12/2008
codice:

#include<iostream>
using namespace std;

struct data{
       int giorno;
       char mese[20];
       int anno;
       };
      
struct utente{
       char codicefiscale[16];
       int matricola;
       char nome[20];
       char via[20];
       char localita[25];
       char provincia[2];
       struct data nato;
       } user[20];
    
    
    char o[1];
    int z=0;      



main(){    
            
  while(strcmp(o,"s")!=0||z<2){
            cout<<"\nnome\n";
            cin>>user[z].nome;
            cout<<"\nvia\n";
            cin>>user[z].via;
            cout<<"\nlocalità\n";
            cin>>user[z].localita;
            cout<<"\nsigla provincia\n";
            cin>>user[z].provincia;
            cout<<"\ngiorno\n";
            cin>>user[z].nato.giorno;
            cout<<"\nmese\n";
            cin>>user[z].nato.mese;
            cout<<"\nanno\n";
            cin>>user[z].nato.anno;
            cout<<"\ncodice fiscale\n";
            cin>>user[z].codicefiscale;
            cout<<"termina programma";
            cin>>o[1];
            z++;
            };
            
            //cout<<"termine dell'esecuzione";
            
  for(int x=0;x<2;x++){
            //cout<<"n° matricola\n";
            //cin>>user[x].matricola;
            cout<<"nome\n"<<user[x].nome;
            cout<<"via\n"<<user[x].via;
            cout<<"località\n"<<user[x].localita;
            cout<<"sigla provincia\n"<<user[x].provincia;
            cout<<"giorno\n"<<user[x].nato.giorno;
            cout<<"mese\n"<<user[x].nato.mese;
            cout<<"anno\n"<<user[x].nato.anno;
            cout<<"codice fiscale\n"<<user[x].codicefiscale;
            };
          
system("pause");
  
   }

vorrei che il while terminasse perche z<2 oppure perchè strcmp = s ma anche se scrivo s non temina il ciclo come devo fare?

PM Quote
Avatar
mc (Normal User)
Rookie


Messaggi: 52
Iscritto: 04/12/2008

Segnala al moderatore
Postato alle 8:18
Venerdì, 26/12/2008
Visto che questo è il forum c++ ... perchè non usi le std::sting ?
Codice sorgente - presumibilmente Plain Text

  1. std::string s = "Ciao";
  2.  
  3. std::cout << (s == "Ciao" ? "si" : "no") << std::endl;


PM Quote
Avatar
bip (Normal User)
Rookie


Messaggi: 36
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 11:50
Venerdì, 26/12/2008
Io stò facendo c++ ma nessuno mi ha spiegato le std string non ne abbimo parla.. quindo non capisco nulla non sai aiutarmi con il while che mi controlli se il char è s blocchi il ciclo oppure se z è minore di blocchi comunque il ciclo.... senza le std string che andrò a guardarmele ma nel mio corso tira un aria strana sembra che si possa usare o fare solo quello che la prof vuole se usciamo da quello che lei ci dice senza discutere senò la infastidiamo e io quest'anno l'ho gia inastidia abbastanza ;)8-|

PM Quote
Avatar
mc (Normal User)
Rookie


Messaggi: 52
Iscritto: 04/12/2008

Segnala al moderatore
Postato alle 12:03
Venerdì, 26/12/2008
Bene, allora puoi dire alla prof che quello che state facendo non è C++ ...
Ti do una mano, va ...
Primo domandati che ti serve un'array di un carattere ? È rindondante ...

char o; /* UN carattere */

int main(void) {

   while(o != 's' || z < valore){

      /* blablabla */

   }

   return 0;

}

PM Quote
Avatar
mc (Normal User)
Rookie


Messaggi: 52
Iscritto: 04/12/2008

Segnala al moderatore
Postato alle 12:06
Venerdì, 26/12/2008
Anzi meglio così:

Codice sorgente - presumibilmente C++

  1. char o; /* UN carattere */
  2.  
  3. int main() {
  4.  
  5. do {
  6.  
  7. /* blablabla */
  8.  
  9.    cin << o;
  10.  
  11. }while(o != 's' || z < 2);
  12.  
  13. return 0;
  14.  
  15. }


PM Quote
Avatar
bip (Normal User)
Rookie


Messaggi: 36
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 23:38
Venerdì, 26/12/2008
grz1000:k:
scusa le ultime due domanda penso

ma che snso ho return 0
e dichiarare una funzione di tipo void

PM Quote
Avatar
mc (Normal User)
Rookie


Messaggi: 52
Iscritto: 04/12/2008

Segnala al moderatore
Postato alle 4:56
Sabato, 27/12/2008
Testo quotato

Postato originariamente da bip:

grazie1000:k:
scusa le ultime due domanda penso

ma che senso ha return 0
e dichiarare una funzione di tipo void



return 0 è previsto dallo standard ... dato che main restituisce un int.
void significa che non ritorna niente.

Ultima modifica effettuata da mc il 27/12/2008 alle 4:57
PM Quote
Avatar
bip (Normal User)
Rookie


Messaggi: 36
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 23:40
Sabato, 03/01/2009
mc cosa vuol dire che il void non torna niente mi fa perpiare un esempio che voglio capire e mmi spieghi che voudire?:-| grzda

PM Quote
Avatar
mc (Normal User)
Rookie


Messaggi: 52
Iscritto: 04/12/2008

Segnala al moderatore
Postato alle 8:27
Domenica, 04/01/2009
Significa che una funzione void non ritorna alcun valore.

PM Quote