Marco95
01-05-2012, 13:59
Salve a tutti...sto creando un programmino in c++ che funziona come una sorta di catalogo multimediale...la descrizione del programma è la seguente:
All'inizio il programma chiede se voglio aggiungere delle canzoni al database,se voglio ascoltarne una,o se voglio uscire...tutto questo è fatto mediante uno switch.
Se scelgo di aggiungere una canzone faccio inserire il titolo della canzone e la memorizzo in un file successivamente faccio inserire il link in cui la canzone si trova (youtube) e lo salvo in un altro file.
Fin qui tutto ok ma quando passo alla modalità "ascolto di canzone" vorrei fare una sorta di switch "autoaggiornabile" che si aggiorna in base al numero di canzoni..
Lo so di non essere stato chiaro ed è per questo che vi posto il codice:
#include<iostream.h>
#include<string>
#include<windows.h>
#include<conio.h>
#include<fstream.h>
#define MAX_LINES 50
#define MAX_LINE_LEN 255
using namespace std;
int main(int argc, char *argv[])
{
   
char titolo[256];//Variabile usata per immagazinarci dentro il titolo
int tastopremuto;//Variabile di controllo per lo switch
char scelta;77Variabile di controllo
    
int controllo;
char url[256];//Variabile usata per immagazinarci dentro l'url
int j=0;
 
etichetta:
cout<<"1-Aggiungere file al database "<<endl;
cout<<"2-Ascoltare da database "<<endl;
cout<<"3-Uscire ";
cin>>controllo;
switch (controllo)
{
case 1: {
do
{
ofstream in("Titoli.txt",ios::app);//Apro il file Titoli.txt
cout<<"Inserisci il titolo della canzone ";
cin >> titolo; //leggo il titolo
in<<titolo<<endl;//metto il titolo all'interno del file
ofstream nel("Url.txt",ios::app);//Apro il file Url.txt
cout<<"Inserisci l'url della canzone ";
cin>>url;//Leggo l'url
nel<<url<<endl;//Lo metto all'interno del file
cout<<"Vuoi inserire altre canzoni?";
cin>>scelta;//leggo la scelta
}
while (scelta!='N');
if (scelta=='N') goto etichetta;//Torno nel menu principale
} break;
case 2: {
char strings[MAX_LINES][MAX_LINE_LEN];
//Apro il file
ifstream nel ("Url.txt");
int j = 0;
//Ciclo che recupera i dati del file riga per riga e li mette in strings
while ( in ) {
in.getline(strings[j++], MAX_LINE_LEN);
}
//Ciclo che mostra i valori contenuti in strings numerati //progressivamente
for (int y = 0 ; y <= j-2; y++)
cout <<y+1<<"- "<< strings[y] << endl;
cout << "\nPremi il tasto corrispondente alla canzone che vuoi ascoltare";
cin>>tastopremuto;//qua mi blocco...
       
}
case 3: break;break;
}
}
Vorrei creare una sorta di switch che a seconda del tasto premuto tramite una shellexecute apre il browser all'indirizzo corrispondente alla canzone...che coincide con la riga n°tasto premuto all'interno del file url.txt...So di avere le idee un po confuse ma...potreste darmi una mano? :D
Scusate la lunghezza del post e grazie a tutti :D
All'inizio il programma chiede se voglio aggiungere delle canzoni al database,se voglio ascoltarne una,o se voglio uscire...tutto questo è fatto mediante uno switch.
Se scelgo di aggiungere una canzone faccio inserire il titolo della canzone e la memorizzo in un file successivamente faccio inserire il link in cui la canzone si trova (youtube) e lo salvo in un altro file.
Fin qui tutto ok ma quando passo alla modalità "ascolto di canzone" vorrei fare una sorta di switch "autoaggiornabile" che si aggiorna in base al numero di canzoni..
Lo so di non essere stato chiaro ed è per questo che vi posto il codice:
#include<iostream.h>
#include<string>
#include<windows.h>
#include<conio.h>
#include<fstream.h>
#define MAX_LINES 50
#define MAX_LINE_LEN 255
using namespace std;
int main(int argc, char *argv[])
{
char titolo[256];//Variabile usata per immagazinarci dentro il titolo
int tastopremuto;//Variabile di controllo per lo switch
char scelta;77Variabile di controllo
int controllo;
char url[256];//Variabile usata per immagazinarci dentro l'url
int j=0;
etichetta:
cout<<"1-Aggiungere file al database "<<endl;
cout<<"2-Ascoltare da database "<<endl;
cout<<"3-Uscire ";
cin>>controllo;
switch (controllo)
{
case 1: {
do
{
ofstream in("Titoli.txt",ios::app);//Apro il file Titoli.txt
cout<<"Inserisci il titolo della canzone ";
cin >> titolo; //leggo il titolo
in<<titolo<<endl;//metto il titolo all'interno del file
ofstream nel("Url.txt",ios::app);//Apro il file Url.txt
cout<<"Inserisci l'url della canzone ";
cin>>url;//Leggo l'url
nel<<url<<endl;//Lo metto all'interno del file
cout<<"Vuoi inserire altre canzoni?";
cin>>scelta;//leggo la scelta
}
while (scelta!='N');
if (scelta=='N') goto etichetta;//Torno nel menu principale
} break;
case 2: {
char strings[MAX_LINES][MAX_LINE_LEN];
//Apro il file
ifstream nel ("Url.txt");
int j = 0;
//Ciclo che recupera i dati del file riga per riga e li mette in strings
while ( in ) {
in.getline(strings[j++], MAX_LINE_LEN);
}
//Ciclo che mostra i valori contenuti in strings numerati //progressivamente
for (int y = 0 ; y <= j-2; y++)
cout <<y+1<<"- "<< strings[y] << endl;
cout << "\nPremi il tasto corrispondente alla canzone che vuoi ascoltare";
cin>>tastopremuto;//qua mi blocco...
}
case 3: break;break;
}
}
Vorrei creare una sorta di switch che a seconda del tasto premuto tramite una shellexecute apre il browser all'indirizzo corrispondente alla canzone...che coincide con la riga n°tasto premuto all'interno del file url.txt...So di avere le idee un po confuse ma...potreste darmi una mano? :D
Scusate la lunghezza del post e grazie a tutti :D