|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 30
|
[C++] Lanciare programma da codice c++
Ciao a tutti sono alle prime armi con la programmazione.
Devo fare un programma in c++ che ad un certo punto mi deve lanciare una applicazione chiamata audacity. Io uso windows però il programma viene lanciato da una shell chiamata cygwin che mi emula linux. è da un sacco che provo a sbatterci la testa senza riuscirci. Qualcuno può aiutarmi?! Ecco il mio programma Codice:
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
void nuovoprofilo();
int main()
{
char ch, nome_cognome[50];
cout << "Nuovo (n), Salvare (s) Lanciare (r) Uscire (q)" << endl;
cin >> ch;
while (ch!='q')
{
switch (ch)
{
case 'n':
cout << "Inserire nome e cognome" << endl;
cin.getline(nome_cognome,50); //perchè non funziona?!
cin.getline(nome_cognome,50);
nuovoprofilo();
break;
case 's':
//salvaprofilo();
break;
case 'r':
//lanciaprofilo();
break;
default : cout << "Nuovo (n), Salvare (s) Lanciare (r) Uscire (q)" << endl;
}
cin >> ch;
}
return 0;
}
void nuovoprofilo()
{
ofstream fout ("sample.grammar");
fout << "S : NS_B COMANDO OGGETTO NS_E" << endl << "S : NS_B RICHIESTA NS_E" << endl;
fout.close();
ofstream fout2 ("sample.voca");
fout2 << "% NS_B" << endl << "<s> sil" << endl << endl << "% NS_E" << endl << "</s> sil" << endl << endl << "% COMANDO" << endl << "ACCENDI a cc e n d i" << endl << "SPEGNI s p e ggn i" << endl << endl << "% OGGETTO" << endl << "LUCE l u c e" << endl << "TEIERA t e j e r a" << endl << endl << "% RICHIESTA" << endl << "AIUTO a j u t o" << endl;
fout2.close();
cout << "Registra la tua voce";
//system("\"C:\\cygwin\\home\\Ciucci\\voxforge\\auto_ita\\prompts\"");
system("\"C:\\Program Files\\Audacity\\audacity.exe\"");
}
Ma non funziona. Mi dice: sh : C:\\Program Files\\Audacity\\audacity.exe command not found |
|
|
|
|
|
#2 |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21919
|
system funziona come il vecchio dos quindi 8+3
prova con progra~1 al posto di program files
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 30
|
Codice:
#include <iostream>
#include <stdlib.h>
#include <fstream>
#define MAX 50
using namespace std;
void nuovoprofilo();
int main()
{
char ch, nome_cognome[MAX];
cout << "Nuovo (n), Salvare (s) Lanciare (r) Uscire (q)" << endl;
cin >> ch;
while (ch!='q')
{
switch (ch)
{
case 'n':
cout << "Inserire nome e cognome" << endl;
cin.getline(nome_cognome,MAX); //perchè non funziona?!
cin.getline(nome_cognome,MAX);
nuovoprofilo();
break;
case 's':
//salvaprofilo();
break;
case 'r':
//lanciaprofilo();
break;
default : cout << "Nuovo (n), Salvare (s) Lanciare (r) Uscire (q)" << endl;
}
cin >> ch;
}
return 0;
}
void nuovoprofilo()
{
ofstream fout ("sample.grammar");
fout << "S : NS_B COMANDO OGGETTO NS_E" << endl << "S : NS_B RICHIESTA NS_E" << endl;
fout.close();
ofstream fout2 ("sample.voca");
fout2 << "% NS_B" << endl << "<s> sil" << endl << endl << "% NS_E" << endl << "</s> sil" << endl << endl << "% COMANDO" << endl << "ACCENDI a cc e n d i" << endl << "SPEGNI s p e ggn i" << endl << endl << "% OGGETTO" << endl << "LUCE l u c e" << endl << "TEIERA t e j e r a" << endl << endl << "% RICHIESTA" << endl << "AIUTO a j u t o" << endl;
fout2.close();
cout << "Registra la tua voce";
system("\"C:\\cygwin\\home\\Ciucci\\voxforge\\auto_ita\\prompts\"");
system("\"C:\\proga~1\\Audacity\\audacity.exe\"");
}
Mi da lo stesso errore. è da due giorni che ci sono sopra e non riesco a risolvere. Non sono più andato avanti |
|
|
|
|
|
#4 |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21919
|
ma come mai lanci da cygwin?
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 30
|
Ah non ne ho idea.
Però vogliono che io lo faccia partire da cygwin. Che robe... |
|
|
|
|
|
#6 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21919
|
Quote:
almeno la shell di cygwin ti parte?
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 30
|
Allora ti spiego.
Ho lanciato il mio programma c++ da windows. Nel mio programma windows ho messo il seguente codice: system("\"C:\\cygwin\\Cygwin.bat\""); che serve a richiamare cygwin. Adesso ho altre domande purtroppo. 1) dovrei creare delle normalissime cartelle. Esiste qualche comando per creare le mie cartelle dove voglio io?! 2) è possibile, mediante il mio codice, passare dalla shell del mio programma c++ a quella di cygwin e viceversa?! Quando il mio programma arriva al codice che ho scritto sopra, la shell del mio programma si trasforma in cygwin. Una volta trasformato in cygwin come faccio a fargli eseguire gli script voluti senza dover digitare nulla nella shell?! Mi è stato richiesto che avvenga tutto in automatico. Ovvero, passo in cygwin, faccio svolgere le operazioni volute nel compilatore cygwin, torno in windows. Spero di essermi spiegato bene. Ringrazio tutti. Un saluto Giovanni |
|
|
|
|
|
#8 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21919
|
Quote:
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:22.




















