Versione Stampabile della Discussione

Clicca qui per visualizzare questa discussione nel suo formato originale

.:Go!PSP Forum:. News sulle Console Sony - Hardware - Custom Firmware - Modding _ Programmazione PSP & ROM Hacking _ Qualche consiglio per iniziare a programmare

Inviato da: MustangXY il Wednesday 28 July 2010 - 19:37

Buonasera e buon fresco (spero) a tutti, amici del forum! biggrin.gif
Da qualche tempo mi frulla in testa il pensiero di iniziare a realizzare qualche semplice homebrew/plugin per PSP, ovviamente su CFW.
Il problema principale, tuttavia, è costituito dalla mia totale ignoranza in materia di programmazione. In parole povere, arrivo a non sapere come realizzare un Hello World o come fare uso di Visual Basic, C++ o LUA, che conosco solamente di nome.
Quindi, in sintesi, vorrei chiedere agli utenti che più si intendono dell'argomento:
1) Quel che devo sapere, in fatto di hardware e software, per iniziare a muovermi nell'ambito programmazione;
2) Quale programma iniziare a utilizzare per fare pratica e cominciare a creare qualcosa;
3) Qualche buona guida da seguire per imparare le funzioni, oltre ai metodi d'uso, dei vari programmi, dato che in giro per il web ce ne sono così tante che non so quale sia la migliore.
Aspetto i vostri consigli! smile.gif
XY

Inviato da: Gemini il Wednesday 28 July 2010 - 20:47

Per la programmazione su console hai come scelta quasi obbligata il C o il C++ (o in casi eccezionali l'assembly puro e semplice), anche perché sono i linguaggi più o meno standard per lo sviluppo di giochi e applicazioni "di un certo livello". Come alternativa potresti usare anche linguaggi scriptati come LUA et simila, ma considerando le prestazioni non proprio entusiasmanti ti consiglio di ignorarli e buttarti a pesce sulla roba seria fin da subito. Occhio però che "seria" non significa necessariamente più difficile, anzi.

Risposte alle domande puntate:
1) Se sei ancora un neofita, non preoccuparti troppo di hardware. Ora come ora devi ancora farti le ossa sulle basi, per cui non ti è ancora richiesta una gran competenza su come adattare le tue procedure a seconda della macchina. Per il software, ti serve riuscire a capire come strutturare un problema in maniera procedurale, cosa che poi dovrai tradurre in codice;
2) Se per programmi intendi un kit per lo sviluppo di base, se lavori sotto Windows ti consiglio di prendere una copia gratuita di Visual Studio Express in modo da avere già tutto quello che ti può servire per smanettere un po';
3) Anni fa usai una vecchia revisione di questa http://www.anfiteatro.it/javadev/corso/indexc.html. È abbastanza semplice da seguire e contiene più o meno tutto quello che potrebbe servirti in futuro, però fai conto che è C puro e semplice. Credo ci sia un corso analogo per il C++, sempre di Fabio Ciucci, ma francamente non ricordo più dopo tutti questi anni.

Inviato da: MustangXY il Wednesday 28 July 2010 - 23:35

Grazie mille. Sì, lavorerei su Windows 7. E cercando un attimo sul sito che hai linkato, ho trovato proprio un corso per C++! biggrin.gif
Comunque, che differenza c'è tra C, C++ e Visual Studio Express?
XY

Edit. Hm. Leggendo l'introduzione alle lezioni di C++, mi par di capire che prima, forse, dovrei leggermi quelle per il C.
Ri-edit. Ho iniziato a leggere il corso di C++, e, *phew*, è tosto!
Ri-ri-edit. Inoltre non capisco cosa sono "float" e "int", e a cosa serva "\n".
Ri-ri-ri-edit. Risolti i dubbi. Temo proprio che dovrò prima leggere la guida all'uso del C, per poi passare al C++.

Inviato da: Darkrai95 il Wednesday 28 July 2010 - 23:37

CITAZIONE (Gemini @ Jul 28 2010, 10:47 PM) *
Per la programmazione su console hai come scelta quasi obbligata il C o il C++ (o in casi eccezionali l'assembly puro e semplice), anche perché sono i linguaggi più o meno standard per lo sviluppo di giochi e applicazioni "di un certo livello". Come alternativa potresti usare anche linguaggi scriptati come LUA et simila, ma considerando le prestazioni non proprio entusiasmanti ti consiglio di ignorarli e buttarti a pesce sulla roba seria fin da subito. Occhio però che "seria" non significa necessariamente più difficile, anzi.

Risposte alle domande puntate:
1) Se sei ancora un neofita, non preoccuparti troppo di hardware. Ora come ora devi ancora farti le ossa sulle basi, per cui non ti è ancora richiesta una gran competenza su come adattare le tue procedure a seconda della macchina. Per il software, ti serve riuscire a capire come strutturare un problema in maniera procedurale, cosa che poi dovrai tradurre in codice;
2) Se per programmi intendi un kit per lo sviluppo di base, se lavori sotto Windows ti consiglio di prendere una copia gratuita di Visual Studio Express in modo da avere già tutto quello che ti può servire per smanettere un po';
3) Anni fa usai una vecchia revisione di questa http://www.anfiteatro.it/javadev/corso/indexc.html. È abbastanza semplice da seguire e contiene più o meno tutto quello che potrebbe servirti in futuro, però fai conto che è C puro e semplice. Credo ci sia un corso analogo per il C++, sempre di Fabio Ciucci, ma francamente non ricordo più dopo tutti questi anni.

Hm, è "se X allora Y"?

Inviato da: Gemini il Thursday 29 July 2010 - 08:59

CITAZIONE (MustangXY @ Jul 29 2010, 01:35 AM) *
Comunque, che differenza c'è tra C, C++ e Visual Studio Express?

Visual Studio Express è un ambiente professionale di sviluppo creato da Microsoft, non un linguaggio di programmazione. C++ è la versione http://it.wikipedia.org/wiki/Programmazione_orientata_agli_oggetti del C con qualche leggera modifica nella struttura. Sostanzialmente, se sai il C puoi apprendere il C++ senza alcun problema, ma dovrai anche cambiare un paio di abitudini derivate dall'utilizzo degli oggetti.

CITAZIONE
Ri-ri-ri-edit. Risolti i dubbi. Temo proprio che dovrò prima leggere la guida all'uso del C, per poi passare al C++.

Secondo alcuni non è necessario, ma tenendo a mente com'è strutturato il corso di Fabio Ciucci, direi che è la migliore cosa da fare.

Inviato da: MustangXY il Thursday 29 July 2010 - 09:33

CITAZIONE (Gemini @ Jul 29 2010, 09:59 AM) *
Secondo alcuni non è necessario, ma tenendo a mente com'è strutturato il corso di Fabio Ciucci, direi che è la migliore cosa da fare.

Ho trovato poco fa una http://programmazione.html.it/guide/leggi/34/guida-c/ su HTML.it (c'era il link al sito dalla home di anfiteatro.it), e mi sembra scritta in maniera piuttosto semplice, oltre ad affermare nell'introduzione che la sua stesura è stata pensata soprattutto per chi si affaccia per la prima volta alla programmazione.
Vi farò sapere se è davvero facile da comprendere.
XY

Edit. Domanda: in che modo, poi, potrò iniziare a programmare per PSP? Necessito di qualche applicazione specifica?
Ri-edit. Ma il Visual Studio 2010 Express è enorme! E' 1.69 GB! Non c'è una versione più piccola? Avevo scaricato il Visual C++ 2010 Express, ma non capivo molte impostazioni.

Inviato da: Gemini il Thursday 29 July 2010 - 23:09

Quasi 2 GB? Mi sembra strano perché la ISO che ho io pesa a stento 700 MB e l'installazione prende 380 MB precisi.

Inviato da: BURG il Friday 30 July 2010 - 09:16

CITAZIONE (MustangXY @ Jul 29 2010, 11:33 AM) *
Edit. Domanda: in che modo, poi, potrò iniziare a programmare per PSP? Necessito di qualche applicazione specifica?

Per PSP se non sbaglio ci vuole il PSPSDK. Non so per Windows, ma Kabir94 aveva scritto una guida per Ubuntu. http://www.gopsp.it/index.php?showtopic=4188

Inviato da: MustangXY il Friday 30 July 2010 - 11:52

CITAZIONE (BURG @ Jul 30 2010, 10:16 AM) *
Per PSP se non sbaglio ci vuole il PSPSDK. Non so per Windows, ma Kabir94 aveva scritto una guida per Ubuntu. http://www.gopsp.it/index.php?showtopic=4188

E il PSPSDK è un compilatore C++ adatto a realizzare applicazioni per PSP?
XY

Inviato da: MustangXY il Sunday 1 August 2010 - 14:50

Rinuncio all'idea di iniziare a programmare. Le istruzioni della guida C++ su html.it non trovano quasi alcun riscontro nel Visual C++ 2010 Express che ho installato. Di libri in proposito ne ho trovati solamente ad uso unversitario. In sostanza mi trovo nella più completa confusione.
Penso che sia un progetto troppo grande e impegnativo a livello di tempo per me. sad.gif
XY

Inviato da: Gemini il Sunday 1 August 2010 - 16:15

In cosa non troveresti riscontro? Torno a ripetere che Visual Studio è solo un'interfaccia e che il linguaggio di base è praticamente lo stesso C/++ di tutte le guide esistenti. Quale sarebbe il problema? Non riesci a creare dei semplici progetti vuoti?

Inviato da: MustangXY il Monday 2 August 2010 - 10:40

CITAZIONE (Gemini @ Aug 1 2010, 05:15 PM) *
In cosa non troveresti riscontro? Torno a ripetere che Visual Studio è solo un'interfaccia e che il linguaggio di base è praticamente lo stesso C/++ di tutte le guide esistenti. Quale sarebbe il problema? Non riesci a creare dei semplici progetti vuoti?

Aprendo un Progetto Console Win32, come dice la guida, e lasciando "Intestazione precompilata", compaiono delle istruzioni precompilate e alcuni files Header e CPP che non conosco e di cui non so la funzione. Selezionando invece "Progetto Vuoto", in Esplora Soluzioni vedo il Progetto, ma a destra non c'è alcuna finestra in cui scrivere.
Inoltre il passaggio 2 della guida indica che dovrei poi creare un file .cpp da Nuovo -> File, per poi selezionare "Aggiungi al Progetto", cosa che non posso fare nè dal menù di scelta files, nè cliccando col tasto destro sul file appena creato, che viene nominato "origine1.cpp".
Negli screenshot sembra che sia usato un Visual C++ vecchiotto, ma mi chiedo come mai non ci sia più l'opzione.
La guida che seguo è questa: http://programmazione.html.it/guide/leggi/34/guida-c/.
XY

Inviato da: Daviex il Monday 2 August 2010 - 12:03

Io uso Visual Studio 2010 Professional e pesa circa 2 gb, quindi credo sia giusto...

Comunque se ti interessa usare solo il tool per il c - c++ ti conviene scaricarti solo quella versione, scaricandoti Visual Studio ti prendi TUTTI i tool ( C Sharp, Visual Basic .net ecc. )

Inviato da: MustangXY il Monday 2 August 2010 - 13:01

CITAZIONE (Daviex @ Aug 2 2010, 01:03 PM) *
Io uso Visual Studio 2010 Professional e pesa circa 2 gb, quindi credo sia giusto...

Comunque se ti interessa usare solo il tool per il c - c++ ti conviene scaricarti solo quella versione, scaricandoti Visual Studio ti prendi TUTTI i tool ( C Sharp, Visual Basic .net ecc. )

Ho scaricato l'ISO completa dal sito Microsoft, per avere a disposizione l'installer, altrimenti in caso di disinstallazione avrei dovuto riscaricare daccapo il setup del Visual C++.
XY

Inviato da: Gemini il Monday 2 August 2010 - 13:39

CITAZIONE (MustangXY @ Aug 2 2010, 12:40 PM) *
Inoltre il passaggio 2 della guida indica che dovrei poi creare un file .cpp da Nuovo -> File, per poi selezionare "Aggiungi al Progetto", cosa che non posso fare nè dal menù di scelta files, nè cliccando col tasto destro sul file appena creato, che viene nominato "origine1.cpp".

Sicuro di averlo fatto nei punti giusti?

Stessa cosa dal menu "Project->Add Existing Item...". Questa figura si può applicare a tutte le versioni di VC++.

Inviato da: MustangXY il Monday 2 August 2010 - 13:55

Come temevo, avevano cambiato i passaggi.
Secondo la guida ora devo scegliere un "Nuovo oggetto", da compilare poi con le istruzioni di Hello World.
Grazie ancora per l'aiuto, te ne sono davvero grato! friends.gif
XY

Edit. Domanda. Nell' Hello World di esempio c'è anche il file "iostream.h", che era uno di quelli che comparivano nella intestazione precompilata (vorrà dire che stavolta lo inserirò io stesso nel progetto, dato che ne ho iniziato uno vuoto). Che cosa definisce di preciso?
Ri-edit. Mi sbagliavo, non è iostream.h a comparire, bensì un "stdafx.h". Penso che non sia necessario cancellarlo, dato che nella prima riga dopo l'intestazione c'è il comando Include "stdafx.h". Ma non servivano i simboli "<" e ">" per indicare un file Header?
Ri-ri-edit. Sembra che la funzione cout non sia supportata... Eppure è proprio una funzione di C++. Inoltre il solo main () non va bene, e pare che vada scritto int -qualcosa- main ().

Inviato da: Xenophontos il Monday 2 August 2010 - 14:54

ma inzia col dev c++ perdio, chi ti ha messo in testa il visual?

Inviato da: Gemini il Monday 2 August 2010 - 15:16

CITAZIONE
Ma non servivano i simboli "<" e ">" per indicare un file Header?

<___> è per il contesto globale, "___" per il contesto locale e/o quello specificato nel progetto.

CITAZIONE
Ri-ri-edit. Sembra che la funzione cout non sia supportata... Eppure è proprio una funzione di C++.

Il C++ non ha funzioni proprie, ma al massimo una libreria standard. Se non scrivi #include <iostream.h> all'inizio del tuo file cpp è normale che il compilatore non sappia da dove prendere cout. Per quanto riguarda stdafx.h, puoi anche eliminarlo (non serve per un semplice Hello World), è solo un'intestazione che Visual Studio decide di mettere per fatti suoi in modo da inserire alcune direttive atte a "snellire" diverse procedure standard.

CITAZIONE
Inoltre il solo main () non va bene, e pare che vada scritto int -qualcosa- main ().

Normale che main() da solo non vada, devi specificare almeno un tipo di restituzione, anche nullo. Esempio:
CODICE
void main()   <- caso regolare
void _tmain() <- per applicazioni con codifica Unicode

Inviato da: Daviex il Monday 2 August 2010 - 18:34

Gemini a proposito di Red Moon, mi puoi dire a che punto stai? o_o

Sono troppo interessato a quel progetto ti prego ç_ç

Inviato da: Gemini il Monday 2 August 2010 - 18:58

Come potrebbe suggerire lo screenshot, sto lavorando sul core audio per levare gli ultimi bug e cercare di implementare anche svariati effetti (loop, cambiamento in tempo reale della frequenza, ecc...). Ho anche fatto svariati lavoretti di 3D con rotazioni geometriche et simila.

Inviato da: Daviex il Monday 2 August 2010 - 20:56

Io voglio fare il beta tester *_*

Appena iniziano i test contattami ^^

Grazie ^^
[/OT]

Inviato da: MustangXY il Monday 2 August 2010 - 21:39

CITAZIONE (Gemini @ Aug 2 2010, 04:16 PM) *
<___> è per il contesto globale, "___" per il contesto locale e/o quello specificato nel progetto.


Il C++ non ha funzioni proprie, ma al massimo una libreria standard. Se non scrivi #include <iostream.h> all'inizio del tuo file cpp è normale che il compilatore non sappia da dove prendere cout. Per quanto riguarda stdafx.h, puoi anche eliminarlo (non serve per un semplice Hello World), è solo un'intestazione che Visual Studio decide di mettere per fatti suoi in modo da inserire alcune direttive atte a "snellire" diverse procedure standard.


Normale che main() da solo non vada, devi specificare almeno un tipo di restituzione, anche nullo. Esempio:
CODICE
void main()   <- caso regolare
void _tmain() <- per applicazioni con codifica Unicode

Ho capito tutto, ma non ho trovato iostream.h da nessuna parte, all'interno della cartelle di Visual Studio. Dove si trova?

CITAZIONE (Xenophontos @ Aug 2 2010, 03:54 PM) *
ma inzia col dev c++ perdio, chi ti ha messo in testa il visual?

Sto infatti usando Visual C++.
XY

Inviato da: Gemini il Monday 2 August 2010 - 23:11

CITAZIONE (MustangXY @ Aug 2 2010, 11:39 PM) *
Ho capito tutto, ma non ho trovato iostream.h da nessuna parte, all'interno della cartelle di Visual Studio. Dove si trova?

Scusa, errore mio. Devi levare quel ".h" dalla stringa e verrà incluso il file header corretto.

CITAZIONE
Sto infatti usando Visual C++.

Credo che Xenophontos volesse cercare di dirti di usare Dev C++ al posto di VC++, ma personalmente lo sconsiglio. Motivo? È vecchio come il cucco, senza contare che usa Mingw (una versione Windows di GCC), un compilatore osannato da molti come il migliore mai creato, nonostante a conti fatti non lo sia affatto.

Inviato da: MustangXY il Monday 2 August 2010 - 23:27

CITAZIONE (Gemini @ Aug 3 2010, 12:11 AM) *
Scusa, errore mio. Devi levare quel ".h" dalla stringa e verrà incluso il file header corretto.

Ma non dovrei prima aggiungerlo al progetto come elemento già esistente? Dove dovrei cercarlo?
XY

Inviato da: Gemini il Monday 2 August 2010 - 23:49

Non c'è bisogno di aggiungerlo da nessuna parte. Quel file fa parte del malloppo con cui viene distribuito Visual Studio ed è tutto interno all'ambiente di sviluppo, per cui è già configurato per l'uso immediato. Tu devi solo includerlo nel codice, al resto ci pensa VS.

Inviato da: MustangXY il Tuesday 3 August 2010 - 09:38

CITAZIONE (Gemini @ Aug 3 2010, 12:49 AM) *
Non c'è bisogno di aggiungerlo da nessuna parte. Quel file fa parte del malloppo con cui viene distribuito Visual Studio ed è tutto interno all'ambiente di sviluppo, per cui è già configurato per l'uso immediato. Tu devi solo includerlo nel codice, al resto ci pensa VS.

Va bene, quindi teoricamente devo scrivere #include "iostream"? Il ".h" non serve, allora?
Un'altra cosa. Non so come racchiudere la scritta Hello World dopo cout <<. Ho provato con (' e '), ( e ), " e ", < e >, ' e ', ma niente da fare. Qual è il metodo corretto?
XY

Edit. Dopo aver scritto void main (), o dopo aver inserito #include "iostream", mi compare un errore "VCServerPackage ha smesso di funzionare".
Aggiungo poi che, dopo qualche tentativo, alla fine della compilazione Visual C++ afferma "Impossibile aprire il file inclusione 'iostream.h': no such file or directory".

Inviato da: Gemini il Tuesday 3 August 2010 - 13:31

Fai prima a postare tutto il codice qui.

CITAZIONE
Va bene, quindi teoricamente devo scrivere #include "iostream"? Il ".h" non serve, allora?

CODICE
#include <iostream>


CITAZIONE
Non so come racchiudere la scritta Hello World dopo cout <<. Ho provato con (' e '), ( e ), " e ", < e >, ' e ', ma niente da fare. Qual è il metodo corretto?

CODICE
std::cout<<"hello world";

Le stringhe sono sempre racchiuse tra virgolette, i caratteri singoli in apici invece.

Inviato da: MustangXY il Tuesday 3 August 2010 - 13:50

CITAZIONE (Gemini @ Aug 3 2010, 02:31 PM) *
Fai prima a postare tutto il codice qui.

In effetti penso tu abbia ragione, si fa più in fretta. biggrin.gif

CODICE
#include <iostream>

main (void)
{
    cout << "Hello World!";
    cout << "Ciao Mondo!";
    return (0);
}


Scrivendo così, Visual C++ riporta tre errori:
- identificatore di tipo mancante, verrà utilizzato int. Nota: default-int non è più supportato in C++ ;
- 'cout': identificatore non dichiarato ;
- 'cout': identificatore non dichiarato .

Se invece scrivo "#include <iostream.h>" l'errore è: Impossibile aprire il file inclusione 'iostream.h': No such file or directory .

Comincio a pensare di non essere molto adatto a programmare, se ho problemi persino con Hello World! pinch.gif
XY

Edit. "std::" cosa indica?

Inviato da: Gemini il Tuesday 3 August 2010 - 14:43

Cambia il codice in:

CODICE
#include <iostream>

int main()
{
    std::cout << "Hello World!";
    std::cout << "Ciao Mondo!";
    return 0;
}

Le funzioni devono avere sempre un tipo (int in questo caso), ma puoi omettere i parametri se non servono (o lasci void, ma è inutile). Inoltre non è necessario mettere le parentesi dopo return, a meno che tu non ne abbia proprio necessità per motivi di priorità degli operatori aritmetici.

CITAZIONE (MustangXY @ Aug 3 2010, 03:50 PM) *
Edit. "std::" cosa indica?

Richiama il namespace standard del C++, ovvero std. Se vuoi evitare di scriverlo prima di ogni cout aggiungi questa linea prima del main:
CODICE
using namespace std;

Inviato da: MustangXY il Tuesday 3 August 2010 - 20:19

Perfetto! biggrin.gif
Compilazione riuscita!
Adesso che finalmente l'Hello World è completo, avrei due domande:
1) è possibile mutarlo in un .exe, o comunque in un file eseguibile?
2) in che modo potrei "farlo girare" su una PSP, a mò di homebrew?
XY

Inviato da: Gemini il Wednesday 4 August 2010 - 00:20

1) Quando la compilazione è terminata hai già il tuo exe sotto la cartella Debug o Release, a seconda della configurazione di generazione.
2) Dovresti scaricarti il kit apposito per PSP e configurartelo a dovere (cosa che non hai invece dovuto fare con Visual Studio) per generare eseguibili compatibili con la macchina. In ogni caso, non ti aspettare che un Hello World su PSP si faccia allo stesso modo di uno per la console di Windows.

Comunque sia, fossi in te aspetterei a buttarmi sulla PSP prima ancora di capire come funziona la programmazione in generale.

Inviato da: MustangXY il Wednesday 4 August 2010 - 10:38

CITAZIONE (Gemini @ Aug 4 2010, 01:20 AM) *
1) Quando la compilazione è terminata hai già il tuo exe sotto la cartella Debug o Release, a seconda della configurazione di generazione.
2) Dovresti scaricarti il kit apposito per PSP e configurartelo a dovere (cosa che non hai invece dovuto fare con Visual Studio) per generare eseguibili compatibili con la macchina. In ogni caso, non ti aspettare che un Hello World su PSP si faccia allo stesso modo di uno per la console di Windows.

Comunque sia, fossi in te aspetterei a buttarmi sulla PSP prima ancora di capire come funziona la programmazione in generale.

Va bene, grazie per il consiglio. smile.gif
Proseguo nella lettura della guida.
XY

P.S. Un'ultimo paio di domande (come sono rompiballe pinch.gif). Ho trovato il file .exe, ma quando lo apro la finestra compare per una frazione di secondo, per poi scomparire. In che modo posso far sì che venga chiusa ad un mio comando? Inserendo una riga cin >>, come il readln vuoto del Pascal? Inoltre, nel momento in cui appare, vedo che "Hello World!" e "Ciao mondo!" si trovano sulla stessa riga, sebbene nel file sorgente abbia messo i due messaggi uno sotto l'altro. Con quale impostazione posso farli incolonnare anche nell'eseguibile?

Inviato da: xx1182 il Wednesday 4 August 2010 - 12:40

Usa Code::Blocks a mio parere ottimo, sempre aggiornato ed ha l'intellisense quindi ti rende tutto il lavoro, più veloce.
Se stai però imparando ti consiglio dev c++ che fa quasi tutto da solo, esiste però una versione modificata di devc++ che ormai è morto chiamata wxdevc++ con WxWidgets(Per farla povera: sono delle cose per creare le finestre).

Spero di aiutarti

CITAZIONE
P.S. Un'ultimo paio di domande (come sono rompiballe ). Ho trovato il file .exe, ma quando lo apro la finestra compare per una frazione di secondo, per poi scomparire. In che modo posso far sì che venga chiusa ad un mio comando? Inserendo una riga cin >>, come il readln vuoto del Pascal? Inoltre, nel momento in cui appare, vedo che "Hello World!" e "Ciao mondo!" si trovano sulla stessa riga, sebbene nel file sorgente abbia messo i due messaggi uno sotto l'altro. Con quale impostazione posso farli incolonnare anche nell'eseguibile?

Ci sono molti modi per farlo fermare il più semplice e(solo se sei sotto windows) SYSTEM("PAUSE") se no usa getchar(); se c'è un input però devi usarlo più volte così ripulisci il buffer della tastiera.

Il c++ non riconosce le nuove linee, quello è solo un file di testo, gli devi dire TU che c'è una linea a capo e puoi farlo in 2 modi:
1) aggiungendo \n per esempio cout << "Ciao caro\n"; leggerà Ciao caro ed andrà a capo, \n è un carattere speciale.
2) Oppure metodo più facile cout << "Ciao Caro" << endl;

EDIT:
CODICE
std::cout << "Hello World!\n";
std::cout << "Ciao Mondo!";

In questo caso sarebbe piu semplice dare un endl; al flusso di stream, c'è li a posta per facilitare il tutto ^^

CODICE
std::cout << "Hello World!" << endl;
std::cout << "Ciao Mondo";

E l'output prodotto sarà identico

Inviato da: Davi92 il Wednesday 4 August 2010 - 12:52

CITAZIONE (MustangXY @ Aug 4 2010, 12:38 PM) *
In che modo posso far sì che venga chiusa ad un mio comando? Inserendo una riga cin >>, come il readln vuoto del Pascal?

Basta che attendi un input da tastiera "a vuoto" (in C usi "getchar" o simili).
CITAZIONE (MustangXY @ Aug 4 2010, 12:38 PM) *
Inoltre, nel momento in cui appare, vedo che "Hello World!" e "Ciao mondo!" si trovano sulla stessa riga, sebbene nel file sorgente abbia messo i due messaggi uno sotto l'altro. Con quale impostazione posso farli incolonnare anche nell'eseguibile?

Devi dare esplicitamente l'"a capo" (\n), non importa che siano su due righe diverse:
CODICE
std::cout << "Hello World!\n";
std::cout << "Ciao Mondo!";

oppure
CODICE
std::cout << "Hello World!\nCiao Mondo!";

(che è meno leggibile, ma è la stessa cosa).

Inviato da: Manaphy91 il Wednesday 4 August 2010 - 12:58

CITAZIONE (MustangXY @ Aug 4 2010, 11:38 AM) *
P.S. Un'ultimo paio di domande (come sono rompiballe pinch.gif). Ho trovato il file .exe, ma quando lo apro la finestra compare per una frazione di secondo, per poi scomparire. In che modo posso far sì che venga chiusa ad un mio comando?

Per chiudere il terminale ad un tuo comando ti consiglio di aspettare, leggerti una guida completa di C++(almeno nelle funzioni principali) ed una volta scelto il sistema definitivo su cui programmare studiare le APIs del sistema.
Visto che stai lavorando su Windows, al fine di tenere aperta la finestra fino alla pressione di un tasto scrivi questo prima del return:
CODICE
system("PAUSE");

CITAZIONE (MustangXY @ Aug 4 2010, 11:38 AM) *
Inserendo una riga cin >>, come il readln vuoto del Pascal? Inoltre, nel momento in cui appare, vedo che "Hello World!" e "Ciao mondo!" si trovano sulla stessa riga, sebbene nel file sorgente abbia messo i due messaggi uno sotto l'altro. Con quale impostazione posso farli incolonnare anche nell'eseguibile?

Se vuoi dividere una frase scrivendola nel sorgente nella stessa riga devi usare l'apposito simbolo di escape:
CODICE
cout << "Questo è su una riga\n e questo su un'altra";

Altrimenti puoi utilizzare endl nel seguente modo:
CODICE
cout << "Questo è su una riga << endl;
cout << "Questo è su un'altra;

Praticamente con endl vai a capo alla fine di una frase da stampare da te scelta.
EDIT: preceduto!

Inviato da: MustangXY il Wednesday 4 August 2010 - 13:20

Grazie a tutti per i consigli! Provvedo a modificare il file sorgente. smile.gif
Comunque, considerando che la guida di html.it si basa su Visual Studio 2005, e quella che mi ha consigliato Gemini è un po' complicata per me, penso che cercherò un buon libro su Visual Studio 2010.
XY

Inviato da: xx1182 il Wednesday 4 August 2010 - 13:27

CITAZIONE (MustangXY @ Aug 4 2010, 03:20 PM) *
Grazie a tutti per i consigli! Provvedo a modificare il file sorgente. smile.gif
Comunque, considerando che la guida di html.it si basa su Visual Studio 2005, e quella che mi ha consigliato Gemini è un po' complicata per me, penso che cercherò un buon libro su Visual Studio 2010.
XY

Se posso darti un consiglio Visual Studio è una piaga, il bello del c++ è la portabilità e Visual Studio non ti offre la stessa portabilità degli altri compilatori.

Ti consiglio http://www.apogeonline.com/libri/9788850323869/scheda, lo sto usando anche io ed è completo, con esercizi, errori comuni ed è usato in ambito universitario, E' ottimo sia per i neofiti che per i più esperti. Ti da una base, e ti fa avanzare fino ad esperto.

Inviato da: MustangXY il Wednesday 4 August 2010 - 13:39

CITAZIONE (xx1182 @ Aug 4 2010, 02:27 PM) *
Ti consiglio http://www.apogeonline.com/libri/9788850323869/scheda, lo sto usando anche io ed è completo, con esercizi, errori comuni ed è usato in ambito universitario, E' ottimo sia per i neofiti che per i più esperti. Ti da una base, e ti fa avanzare fino ad esperto.

Difficilmente i miei mi permetterebbero di spendere tanto per un libro, e comunque penso che alcune funzioni siano cambiate con l'uscita di nuove versioni di Visual Studio. Infatti la guida che seguivo indicava iostream.h invece di iostream, non parlava di using namespace std, o di std::, che a quanto ho capito servono in connubio con l'Header iostream affinchè i comandi cin e cout vengano riconosciuti.
XY

Inviato da: Manaphy91 il Wednesday 4 August 2010 - 13:41

Purtroppo è vero non ti offre nessuna portabilità. C'è nel contempo da considerare che non esiste comunque nessun libro su di un determinato IDE diverso da VC++. Io ad esempio ero intenzionato a programmare delle applicazioni con GUI per Windows, ed evitando prontamente le proposte di Microsoft ho provato ad utilizzare wxDev-C++: una chiavica nel senso che una volta lette quelle quattro funzioni esplicate nella guida ufficiale italiana(uguale per quella inglese) nessuno è in grado di legare una GUI ad un codice sorgente... per non parlare del supporto assente da anni, iniziato a degenerare quando hanno creato il programma stesso...
Ora mi sono rotto e vado di Notepad++ che uso per C++, Python ed alle volte per Html e js. A mio parere funziona egregiamente, certo per il compilatore vado di Mingw o GCC su Linux e per le GUI ormai ho scelto le GTK, in ambiente Windows purtroppo rimpiango di non aver mai provato a creare un'interfaccia come si deve con VC++.

Inviato da: xx1182 il Wednesday 4 August 2010 - 13:44

CITAZIONE (MustangXY @ Aug 4 2010, 03:39 PM) *
Difficilmente i miei mi permetterebbero di spendere tanto per un libro, e comunque penso che alcune funzioni siano cambiate con l'uscita di nuove versioni di Visual Studio. Infatti la guida che seguivo indicava iostream.h invece di iostream, non parlava di using namespace std, o di std::, che a quanto ho capito servono in connubio con l'Header iostream affinchè i comandi cin e cout vengano riconosciuti.
XY

No, non è cambiato niente, è uno standard, semplicemente certi compilatori vogliono che usi l'estensione al file e certi no, anche using namespace, in compilatori come devc++ è automatico ed è più adatto ai neofiti, comunque non è Visual Studio, visual studio serve solo a "Tradurre" quello che tu scrivi in c++

In poche parole std::cout

Vuol dire usa l'oggetto cout della classe ostream. se tu usi using namespace std;
cout è le varie operazioni di stream si trovano nel namespace std, per ora devi saperlo, queste sono tecniche avanzate(template e namespace). Ti consiglio vivamente quel libro, se sei veramente interessato.

Fornito da Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)