Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
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: 250
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, furletto, SL45i
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: 250
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, furletto, SL45i
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


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
WhatsApp, arriva su iOS la nuova scorcia...
Snap presenta Specs: realtà aumentata, c...
SteamOS verso un cambiamento epocale: ar...
Recensione HUAWEI FreeBuds Neo, piccoli ...
TSMC aumenta i costi di produzione: AMD ...
L'Europa sfida i magnati dei combustibil...
One UI 9 arriva sui Galaxy S26: pi&ugrav...
Hacker chiedono 2,5 milioni di euro a Re...
Home Assistant su uno schermo touch econ...
L'IA entra nei negozi Unieuro con Google...
"What Holds Us", la nuova most...
La Formula 1 divide sui motori, ma il su...
Un computer a DNA esegue moltiplicazioni...
Ibride cinesi, l'Europa fissa il tetto a...
iPhone Duo potrebbe dar vita a una gamma...
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: 15:53.


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