Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-01-2013, 06:46   #1
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
[C++] Switch e la sua "espressione"

Premetto che compilo ancora col vecchio Dev.. ormai obsoleto e non piu aggiornato.. col costrutto switch è possibile mettere una stringa nell'espressione?

C'ho provato con string ma allo switch non piace questa variabile.. ho fatto un tentativo da niubbo pure con un vettore di caratteri

Ho provato pure con la cascatina di if else-if, ma non mi attira tanto l'idea...
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 07:10   #2
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Non si possono usare string nello Switch. Solo valori integrali o convertibili ad un tale valore (come i char).
Nel C# invece (e spero anche in altri linguaggi) lo Switch prende anche le stringhe, se ti può interessare.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 07:46   #3
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Interessante. Mhh no, C# non fa per me.. tutti i linguaggi propensi all'OOP piu del C e del C++ non sono quello che cerco.

In C alla fine "tutto" si puo fare, però bisogna fare giri mooolto larghi e bisogna essere molto masochisti :/
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 08:19   #4
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Come vuoi tu o_O
Non ti stavo proponendo di passare al C# cmq, era giusto una informazione.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 08:54   #5
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 246
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
Nel C# invece (e spero anche in altri linguaggi) lo Switch prende anche le stringhe, se ti può interessare.
Si può fare anche in Java, ma solo dalla versione 1.7 in poi (se non erro).
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 08:56   #6
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Ora non so come sia strutturato completamente il C#, l'ho visto su un po di tutorial su youtube. E' ottimo per chi vuole fare programmi che prendano piede velocemente, però non sono multi piattaforma e sono piuttosto lentini.. vero peccato.

Ma forse un giorno ci passerò anch'io per questi linguaggi.
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:00   #7
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Quote:
Originariamente inviato da Mettiu_ Guarda i messaggi
Si può fare anche in Java, ma solo dalla versione 1.7 in poi (se non erro).
Non proprio, ma java è leggermente avanti..
http://alefranz.net/it/programmers-t...ase-su-string/

EDIT: Ok errato io
https://gist.github.com/1112538
Sintassi ardua da capire, anche se dopo mesi di C qualcosa riesco a comprendere anche in Java

Ultima modifica di stohuman : 18-01-2013 alle 09:04.
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:07   #8
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 246
Quote:
Originariamente inviato da stohuman Guarda i messaggi
Non proprio, ma java è leggermente avanti..
http://alefranz.net/it/programmers-t...ase-su-string/

EDIT: Ok errato io
https://gist.github.com/1112538
Sintassi ardua da capire, anche se dopo mesi di C qualcosa riesco a comprendere anche in Java
Ricordavo bene. Se parliamo di stringhe (cioè fare qualcosa tipo case "pippo"), puoi farlo solo da Java 7 in poi. Compilare per credere...

http://stackoverflow.com/questions/3...trings-in-java

http://www.theserverside.com/tutoria...ional-Switches
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:14   #9
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Beh si, java è un mostro .. però controllando su internet (tutta roba inglese ovvio... ) forse hanno trovato una soluzione al problema..

http://stackoverflow.com/questions/4...-integers?lq=1
Tradotto:

Convertire la stringa in numero e quindi mettere i soliti...
Codice:
case 1:
case 2:
e..
...ove però int equivale a una stringa.

Anche se gli occhi mi bruciano come l'inferno voglio testare sta cosa.
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:38   #10
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Per convertire una stringa in un int ho usato la cascatina , però è gia piu carino visto cosi.. in piu devo ritrovare quella funzione che collega i caratteri ascii maiuscoli a quelli minuscoli.

Devo trovare un modo piu carino per convertire le stringhe però, magari con una funzioncina, convertendo e giocando con i cast sui caratteri delle stringhe..

Codice:
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <ctime>
#include <conio2.h>

using namespace std;

void mainmenu(){
     
     cout << "Uno per Funzione 1\nDue per Funzione 2\nExit per uscire dal programma ora.\n\t";
     
     string g;
     int x=0;
     cin >> g;
     
     if (g == "Uno")
       x = 1;
       else
       if (g == "Due")
         x = 2;
         else
         if (g == "Exit")
         x = 0;
         else
         x = -1;
     
     switch (x){
            case 1:
                 cout << "Funzione 1!\n";
                 break;
            case 2:
                 cout << "Funzione 2!\n";
                 break;
            case 0:
                 cout << "Exit, bye!\n";
                 getchar();
                 exit(0);
            default:
                    cout << "Comando non riconosciuto.\n";
                    clrscr();
                    mainmenu();
            }
     
     }

int main(){
    
    mainmenu();
    
    fflush(stdin);
    cout << "Exit, bye!\n";
    getchar();
}
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:38   #11
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da stohuman Guarda i messaggi
Interessante. Mhh no, C# non fa per me.. tutti i linguaggi propensi all'OOP piu del C e del C++ non sono quello che cerco.

In C alla fine "tutto" si puo fare, però bisogna fare giri mooolto larghi e bisogna essere molto masochisti :/
Il C di OOP non ha proprio nulla, a dire il vero.

Il discorso comunque è decisamente diverso, dal mio punto di vista.
Un linguaggio non va scelto in base alla "simpatia" verso la sua sintassi o al fatto che è più o meno performante, quanto al cosa vuoi programmare.
Se programmi su di un iDevice userai l'Objective C, su android il Java, su Windows il C# la fa sempre più da padrona, per i videogame (ma vabbè, qui si comincia ad andare su scenari parecchio avanzati) difficile affidarsi ad altro che non sia il C++ (a parte qualche caso, vedi per esempio i buoni risultati ottenuti con il C# e il framework XNA), e via discorrendo.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:39   #12
idoido
Senior Member
 
Iscritto dal: May 2008
Messaggi: 429
Quote:
Originariamente inviato da Mettiu_ Guarda i messaggi
Ricordavo bene. Se parliamo di stringhe (cioè fare qualcosa tipo case "pippo"), puoi farlo solo da Java 7 in poi. Compilare per credere...

http://stackoverflow.com/questions/3...trings-in-java

http://www.theserverside.com/tutoria...ional-Switches
bene bene, un buon motivo per sfottere Java alla prossima occasione

bellissima la risposta del tipo su stackoverlow:

Switch statements with String cases have been implemented in Java SE 7, at least 16 years after they were first requested.
idoido è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:45   #13
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da stohuman Guarda i messaggi
Per convertire una stringa in un int ho usato la cascatina , però è gia piu carino visto cosi.. in piu devo ritrovare quella funzione che collega i caratteri ascii maiuscoli a quelli minuscoli.

Devo trovare un modo piu carino per convertire le stringhe però, magari con una funzioncina, convertendo e giocando con i cast sui caratteri delle stringhe..
Domanda: ma per quale motivo fare tutto questo? Il case è un bel costrutto, ordinato e conciso, ma se nel C e nel C++ non è previsto l'utilizzo di stringhe non vedo perchè forzare la cosa con sistemi simili che tra l'altro aggiungono solo righe di codice.
In questi casi io andrei di if_else if_else if_ecc... , che risulta comunque estremamente leggibile e funzionale.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:54   #14
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
Il C di OOP non ha proprio nulla, a dire il vero.

Il discorso comunque è decisamente diverso, dal mio punto di vista.
Un linguaggio non va scelto in base alla "simpatia" verso la sua sintassi o al fatto che è più o meno performante, quanto al cosa vuoi programmare.
Se programmi su di un iDevice userai l'Objective C, su android il Java, su Windows il C# la fa sempre più da padrona, per i videogame (ma vabbè, qui si comincia ad andare su scenari parecchio avanzati) difficile affidarsi ad altro che non sia il C++ (a parte qualche caso, vedi per esempio i buoni risultati ottenuti con il C# e il framework XNA), e via discorrendo.
Lo so. Io programmo in C++ non perche mi sta simpatico... spesso e senza volerlo mi arrabbio col compilatore.
Che non abbia niente di OOP non è proprio vero, certo non mi puo venire in mente di farmi un team di 3 persone e fare photoshop o GIMP completamente in C++... difatti come dici tu, si sceglie il linguaggio in base a quello su cui si vuole programmare.
Io non credo proprio di mettermi a fare le cosi dette "App", o programmini con GUI gia pronte.

La gran parte del codice che scriverò voglio che vada sulla maggior parte dei sistemi, quindi cerco di tenermi lontano dalle chiamate e dai linguaggi troppo attaccati ai sistemi stessi, quindi anche i framework o le directX se riguarda videogameing..

Ho iniziato col C e ci continuo ora
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 10:00   #15
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
Domanda: ma per quale motivo fare tutto questo? Il case è un bel costrutto, ordinato e conciso, ma se nel C e nel C++ non è previsto l'utilizzo di stringhe non vedo perchè forzare la cosa con sistemi simili che tra l'altro aggiungono solo righe di codice.
In questi casi io andrei di if_else if_else if_ecc... , che risulta comunque estremamente leggibile e funzionale.
L'ho detto, non mi trovo bene con gli if else in cascata, cerco di evitarli se posso.
Personalmente poi anziche scrivere sempre un numero anziche la scelta vera e propria stufa un po', sto solo facendo dei test, non dico che ora tutti devono fare come dico io.

Oltre tutto con i processori di oggi, qualche riga di codice in piu non è cosi pesante. Basta non esagerare nei punti critici, una cascata di if else e un costrutto sicuramente non faranno laggare un semplice menù.
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 10:11   #16
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da stohuman Guarda i messaggi
Lo so. Io programmo in C++ non perche mi sta simpatico... spesso e senza volerlo mi arrabbio col compilatore.
Che non abbia niente di OOP non è proprio vero, certo non mi puo venire in mente di farmi un team di 3 persone e fare photoshop o GIMP completamente in C++... difatti come dici tu, si sceglie il linguaggio in base a quello su cui si vuole programmare.
Io non credo proprio di mettermi a fare le cosi dette "App", o programmini con GUI gia pronte.
Io però mi riferivo al C, non al C++ (che invece implementa il paradigma OOP, seppure con un livello di astrazione inferiore ad altri linguaggi OOP puri).
Riguardo alle interfacce, infine, ormai qualsiasi programma con interfaccia utente si basa su librerie grafiche già fatte (più o meno complete).
Restando in ambito C++, librerie come QT, GTK e similari sono proprio questo.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 10:19   #17
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Diciamo che io sono per il 70% C++ e 30% C std, anche se il primo inizio è stato con il C, poi i vari tutorial alla cazzo di cane mi hanno fatto fare confusione e mi sono tirato fuori da solo studiandomi meglio le sintassi e quello che cambia tra i due linguaggi.

L'interfaccia grafica non è il mio obiettivo, per ora sto ai livelli del terminale.
Ma se dovessi scrivere un programma con una GUI lo farei ugualmente in C++, no sacrifice no victory.
stohuman è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
iPhone 17: i preordini stanno andando mo...
The Crew Unlimited è ufficialment...
Xiaomi continua a sfidare Apple: è...
Robot aspirapolvere top del momento: ecc...
Le tue RAM DDR5 non sono al sicuro: scop...
AMD abbandona AMDVLK: RADV diventa il dr...
HONOR Pad 10 trasforma tablet, telefono,...
Battlefield 6: per gli sviluppatori Xbox...
Non ci crederai: il nuovo MacBook Air M4...
Spotify cambia tutto, novità bomb...
Comprare un'auto elettrica costerà...
Nuovi aumenti di prezzo per gli HDD: Wes...
Arriva iOS 26: attenzione alla batteria....
Il satellite cinese Jilin-1 ha fotografa...
Arrivano i nuovi iPhone ed è subi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v