Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - typedef in c++
Forum - C/C++ - typedef in c++

Avatar
musical wrighter (Normal User)
Newbie


Messaggi: 5
Iscritto: 26/09/2018

Segnala al moderatore
Postato alle 16:07
Venerdì, 31/05/2019
posso accorpare in un typedef due o più tipi di variabili ed ottenere così un tipo di variabile da poter utilizzare nel mio codice che abbia le proprietà per esempio delle string e delle wstring? e poter quindi utilizzare una variabile di tipo mio_typedef indistintamente sia come una che come l'altra? se si qualcuno potrebbe cortesemente scrivermi la sintassi in c++ con un esempio di codice? grazie in anticipo

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5835
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:40
Venerdì, 31/05/2019
Non è chiarissimo cosa tu voglia fare ma NON lo fai con il typedef.

Forse, se ho capito, potresti usare una classe apposita.

Spiegati meglio e dicci perché vorresti fare quello che chiedi ...


Ultima modifica effettuata da nessuno il 31/05/2019 alle 17:00


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
musical wrighter (Normal User)
Newbie


Messaggi: 5
Iscritto: 26/09/2018

Segnala al moderatore
Postato alle 19:43
Venerdì, 31/05/2019
grazie della risposta. per spiegare meglio cos'è a bloccarmi descrivo l'app che sto scrivendo cosa dovrebbe fare. l'ho chiamata "giradischi virtuale" e lo scopo sarebbe quello di leggere nomi di file wav da un qualsiasi txt o altro file scritto da notepad e riprodurrli copio quì di seguito il codice provvisorio che ho scritto
Codice sorgente - presumibilmente Plain Text

  1.  


#include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
using namespace std;
#pragma comment(lib,"winmm.lib")
typedef wstring instruction;
int main()
{
    instruction titoli;
    getline(wcin, titoli);
    wifstream disco(titoli);
    getline(disco, titoli);
    while (titoli!="out")
    {
        PlaySound(titoli.c_str(), NULL, SND_FILENAME);
        getline(disco, titoli);
    }
    disco.close();
    return 0;
}
Codice sorgente - presumibilmente Plain Text

  1.  


sto provando col typedef invece di usare le stringhe di windows direttamente in quanto quest'ultime non accettano parametri come == o in questo caso !=. e non è per ciò possibile inserire nessuna parola d'ordine per la chiusura automatica dell'app.  ma le più comuni stringhe std non possono esser usate per indicare nomi di brani da riprodurre con l'header di windows.stavo cercando fondamentalmente qualcosa che racchiudesse nelle stesse variabili le funzioni delle une e delle altre. spero d'aver chiarito meglio

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5835
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:17
Venerdì, 31/05/2019
Non ho capito ancira... né perché usi wstring né la questione del == o !=


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
musical wrighter (Normal User)
Newbie


Messaggi: 5
Iscritto: 26/09/2018

Segnala al moderatore
Postato alle 21:42
Venerdì, 31/05/2019
l'app dovrebbe funzionare così creo un txt per esempio e dentro ci scrivo 10 nomi di file wav presenti nel mio ardisk, e nell'undicesima riga scrivo out. dopo di che apro giradischi virtuale.exe mi esce subito una linea per scrivere in cui inserisco il nome che ho scelto per il file di testo, non so playlist.txt, vengono riprodotti uno di seguito all'altro i brani che ho scelto dopo di che l'eseguibile si chiude. in quanto il ciclo while prevede quello. che finché il valore della variabile chiamata titoli è diverso dalla parola hout l'eseguibile continua a leggere e a suonare l'audio corrispondente. ma non hai mai provato a creare una condizione tipo
Codice sorgente - presumibilmente Plain Text

  1.  

if(wstring=="tizio"
Codice sorgente - presumibilmente Plain Text

  1.  

) o
Codice sorgente - presumibilmente Plain Text

  1.  

if(wstring!="caio")
Codice sorgente - presumibilmente Plain Text

  1.  

? che in c++ significa "quella tale variabile affermativo è uguale a questo" o "negativo è diversa da quest'altro" se provi ad usare questa sintassi con una stringa di windows come oggetto vedrai che ti usciranno errori di compilazione. tipo che è impossibile la conversione

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5835
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 8:25
Sabato, 01/06/2019
Allora... intanto io programmo in c++ da molto tempo quindi lascia stare le spiegazioni della if.

Quello che ti voglio dire è che non devi cercare soluzioni assurde a problemi la cui soluzione è un'altra ma non la conosci.

Ora dimmi

-quale compilatore usi
-quale tipo di progetto hai creato
-qual è esattamente il codice che ti dà l'errore (formattalo bene sul forum)

Ultima modifica effettuata da nessuno il 01/06/2019 alle 8:34


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
musical wrighter (Normal User)
Newbie


Messaggi: 5
Iscritto: 26/09/2018

Segnala al moderatore
Postato alle 12:21
Sabato, 01/06/2019
uso Visual C++ in Visual Studio  estensione chiaramente per console di Windows e il messaggio che esce quando provo a compilare  il codice che ho scritto nel messaggio sopra è il seguente
'!=' binario: non è stato trovato alcun operatore che accetti un operando sinistro di tipo 'instruction'. È anche possibile che non vi siano conversioni accettabili.
quella che ho scritto qui è solo una delle strade che ho tentato per risolvere il problema. se la soluzione è un'altra l'ascolto volentieri. o  è meglio che apra un'altra discussione?

Ultima modifica effettuata da musical wrighter il 01/06/2019 alle 12:25
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5835
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:54
Sabato, 01/06/2019
Se vuoi usare le wstring devi adattare anche le costanti. Il confronto va scritto così

while(titoli != L"out")

Ultima modifica effettuata da nessuno il 01/06/2019 alle 14:04


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
musical wrighter (Normal User)
Newbie


Messaggi: 5
Iscritto: 26/09/2018

Segnala al moderatore
Postato alle 21:49
Sabato, 01/06/2019
grazie mille nessuno. ora infatti è andato senza problemi. a saperlo che bastava un carattere in più. quest'informazione penso mi torni utile anche per altri progetti

PM Quote