Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Dal richiamo di Enrico Letta alla necessità di completare il mercato unico entro il 2028 alla visione di Nokia sul ruolo dell’IA e delle reti intelligenti, il Nokia Innovation Day 2025 ha intrecciato geopolitica e tecnologia, mostrando a Vimercate come la ricerca italiana contribuisca alle sfide globali delle telecomunicazioni
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
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


Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
ASUS sperimenta GPU senza connettori di ...
La Cina conquisterà lo spazio ent...
Samsung ha un nuovo entry level: debutta...
Caos nei cieli europei: attacco informat...
Volkswagen ferma la produzione di ID.Buz...
Super sconti del weekend Amazon: 5 novit...
Dreame non si ferma più: tra le n...
Samsung Galaxy Buds3 FE a meno di 95€ su...
Praticamente regalate: 135€ per le Squie...
Si rinnovano i coupon nascosti di settem...
Amazon sconta i componenti: occasioni d'...
Vibe coding: esplode la domanda di esper...
Ring Intercom su Amazon: citofono smart ...
Addio regie complicate: un'AI gestir&agr...
Xbox, nuovo aumento dei prezzi negli Sta...
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: 18:14.


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