Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Problema di scelta c++

  1. #1

    Problema di scelta c++

    Salve a tutti,
    è la prima volta che scrivo in questo forum... però grazie a voi ho potuto risoleve vari problemi già in passato... spero possiate aiutarmi anche adesso...
    Allora il problema è che volevo creare un programma che mi permettesse di scegliere tra 2 possibilità, e ho scritto questo nel main:
    ------------------------------------------------------------------------
    cout<<"Vuoi inserire nel file il minimo o il massimo? "<<endl;
    cin>>scelta;

    if(scelta=="Min" || scelta=="min")

    scriviSuFile(Min);
    else
    scriviSuFile(Max);
    -------------------------------------------------------------------------
    L'errore che esce è: ISO C++ forbids comparison between pointer and integer

    Come potrei risolvere questo problema????

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma

    scelta

    che tipo di variabile è ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    ho definito un tipo stringa "typedef char stringa"
    e scelta è di tipo stringa....

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... cosi' scelta è un semplice char ...

    In C++, puoi dichiararla di tipo string ...

    string scelta;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Grazie... avevi ragione... ora però mi è sorto un'ulteriore problema....:
    questo è quello ke ho scritto nel main:

    -------------------------------------------------------------------------------
    cout<<"Vuoi inserire il minimo o il massimo? "<<endl;
    cin>>scelta;

    if(scelta=="Max" || scelta=="max")
    scriviSuFile(Max);

    else
    scriviSuFile(Min);

    ------------------------------------------------------------------------------
    Max e Min vengono passati per riferimento da un'altra funzione ke ho ommesso...
    Il problema è che fa partire sempre la funzione "ScriviSuFile(Min)" anche se la mia scelta non è uguale a Max....
    Com'è possibile??????

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Mah ... mi sembra strano quello che dici ...

    Proponi *tutto* il codice compilabile e vediamo ... (utilizza i tag CODE per postare il codice nel forum, altrimenti si fa fatica a capirlo) ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Questo è il main:
    codice:
     int x, r1;
        
        stringa scelta, Min, Max;
        vett v1;
        
        
       
        leggiDaFile(v1, r1);
        cout<<"\n QUESTA E' LA LISTA PRESENTE NEL FILE\n\n";
        stampa(v1, r1);
        cout<<"-------------------------------------------"<<endl;
        nomeMinimo(v1, r1, Min);
        nomeMax(v1, r1, Max);
        
        cout<<"Vuoi inserire questi nomi in un nuovo file?\n";
        cout<<"Se si, digita 1; altrimenti digita 2 e il programma verra' terminato: ";
        cin>>x;
        
        if(x==1){
                cout<<"Vuoi inserire il minimo o il massimo? "<<endl;
                cin>>scelta;
                
                if(scelta=="Max" || scelta=="max")
                                    scriviSuFile(Max);
                                               
                else
                                    scriviSuFile(Min);
                                               
               }
        else
                cout<<"Il programma e' terminato!"<<endl;

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma scusa ... cosa è

    stringa

    ?

    Ti avevo detto di usare la classe "string" del C++ ma non l'hai fatto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Questo è la libreria ke includo "Header.h"

    codice:
    #ifndef header_h
    #define header_h
    #include <iostream>
    #include <string.h>
    #include <fstream>
    #include <stdlib.h>
    
    #define m 30
    
    typedef char stringa[m];
    typedef stringa vett[20];
    
    using namespace std;
    
    void leggiDaFile(vett v, int &r);
    void stampa(vett v, int r);
    void nomeMinimo(vett v, int r, stringa &Min);
    void nomeMax(vett v, int r, stringa &Max);
    void scriviSuFile(stringa x);
    
    
    
    
    
    #endif

    definendo il tipo "typedef char stringa [m]" con la cardinalità "m" non mi da problemi...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... se ti si da' un consiglio, non puoi far capire che l'hai seguito e poi non e' vero ...

    Con una stringa C (come hai fatto tu) non puoi confrontare le stringhe con un == come hai fatto nella

    if(scelta=="Max" || scelta=="max")

    mentre lo puoi fare con la classe string del C++ (dato che usi C++).

    Quindi dovrai scrivere

    #include <string>

    using namespace std;

    e quindi

    string scelta;

    Solo a questo punto potrai usare quella if ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.