Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2020
    Messaggi
    4
    Si, effettivamente ho notato a posteriori che il carattere immesso nello switch era vuoto.
    Così ho modificato la funzione Inserimento del controllo input in:

    codice:
    template <typename T>
    T Inserimento (T ins){
      int a, b;
      T output;
      std::string::size_type sz;
      do{
      std::string str;
      std::cin.clear();
      std::getline(std::cin, str);
      if(typeid(ins) == typeid(int)){
        a = 0;
        try{
          output=std::stoi(str,&sz);
        }catch(const std::invalid_argument& ia){}
      }else if(typeid(ins) == typeid(char)){
        a = 1;
        output = str[0];
      }
      else {
        a = 2;
        //output=str;
      } 
      b = ReadStr(str);
      if (a != b){
        std::cout << "Inserimento non valido, riprovare -> \tScelta selezionata:  ";
      } else {return output;}
      }while (a != b);
    con la modifica che nel resto del programma Inserimento viene così assegnato:

    codice:
    c=Inserimento(c)
    Così infatti è tutto più controllato e lo switch non riscontra impedimenti.

    Ho tuttavia un'altra difficoltà: se lancio il controllo input anche con la riga che ora è commentata in Inserimento (//output=str;), mi segnala errore in quanto riscontrerebbe difficoltà assegnare la stringa str alla variabile output nei casi in cui questa sia definita int o char.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2020
    Messaggi
    4
    Quote Originariamente inviata da fra.p Visualizza il messaggio
    mi segnala errore in quanto riscontrerebbe difficoltà assegnare la stringa str alla variabile output nei casi in cui questa sia definita int o char.
    Per chiarezza, la dicitura esatta che mi compare è questa:

    inputCheck.h: In instantiation of ‘T Inserimento(T) [with T = char]’:
    ordine.h:39:31: required from here
    inputCheck.h:47:10: error: cannot convert ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘char’ in assignment
    output=str;
    ~~~~~~^~~~

    con analogo duplicato per tipo int

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    ..
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.