Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

[Guida] Il C++ [CH.02: Printf e Commenti]
(Questo messaggio è stato modificato l'ultima volta il: 14/03/2011, 20:35 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
Rieccoci, andiamo un po' avanti con sto C++

Riguardando il CH1 mi sono accorto che sono troppo prolisso, quindi penso che accorcerò di molto le spiegazioni.
Poi se non capite chiedete che spiego.

== 1. Printf e caratteri speciali ==

Beccatevi subito il codice:



    C++ Programming
  1. #include <stdio.h>
  2. int main()
  3. {
  4. printf("hello, ");
  5. printf("beutiful ");
  6. printf("world");
  7. printf("\n");
  8. }





Il printf lo avevamo già visto,
Qui da notare c'è che l'output sarà su una sola riga cosi:

hello beautiful world

quindi? il printf non va a capo! per far questo si usa il carattere speciale "\n" che appunto sta per "new line" , a capo.

Come \n ce ne sono altri, magari li vedremo, ad esempio il \t è il TAB

== 2. Commenti ==

non i vostri
qui si parla di commenti nel codice.
perché i commenti? prevalentemente per "spiegare" cosa fa il codice, agli altri che lo leggono, ma anche a voi stessi, perché non crediate, mentre scrivete un programma sapete quello che fate, ma basta che lo riprendiate in mano dopo un mese o piu e già farete fatica a capire che cavolo state facendo con quelle righe di codice ahah.



Codice:

    C++ Programming
  1. #include <stdio.h>
  2. int main()
  3. {
  4. /* il codice che segue è solo
  5.   un esempio molto semplice di
  6.   uso della funzione printf */
  7.  
  8. printf("hello, ");
  9. printf("beutiful "); // si scrive cosi beautiful ?
  10. printf("world");
  11. printf("\n"); /* \n è il carattere per andare a capo */
  12. }





Il Commento è un testo che inseriamo nel codice per "dirci qualcosa" che il compilatore non considera proprio ,
quindi non genererà nessuna istruzione per la CPU, è solo a nostro uso e consumo.

Notate i diversi tipi di commento

multilinea:

    C++ Programming
  1. /* inizio commento
  2.   fine del commento */





su una riga tipo1:

    C++ Programming
  1. /* inizio e fine commento */



su una riga tipo2:

    C++ Programming
  1. // da qui in avanti, fino alla fine della riga è un commento



Il commento a volte è molto utile anche per un altro scopo.
Ad esempio mettiamo che gli address della la nostra hack hanno bisogno di essere aggiornati dopo l'aggiornamento di warrock...

Possiamo commentare nel ciclo principale tutte le funzioni in modo che non vengano eseguite con gli address sbagliati (crashando il gioco) e man mano che sistemiamo gli address togliamo i commenti e proviamo se tutto funziona una funzione per volta.


Alla prossima
ciao


digger
13/03/2011, 0:42
#1
Cerca

ZioPaperino VIP
Messaggi: 2,350
Discussioni: 667
Registrato: 03-2011
Mix: 0
Ok ci vediamo alla prossima Tounge

13/03/2011, 0:44
#2
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
ahah si alla prossima... guarda che c'è già Smile


digger
13/03/2011, 0:45
#3
Cerca

Iscritto
Messaggi: 119
Discussioni: 9
Registrato: 03-2011
Mix: 0
digger scusa... Ma quello che tu stai spiegando è il C e non C++, il C++ usa un altra libreria ed ha dei comandi diversi...
usa la libreria iostream.h e il comando per stampare è cout<<"testo"; ........

14/03/2011, 17:05
#4
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 14/03/2011, 20:40 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
mmm qui bisogna dare qualche delucidazione Smile
bravo, fai notare una cosa giusta, ovvero la questione C vs C++
dovrei vedere cosa ho scritto nell'altro post, il fatto è che il C++ ha ereditato moltissimo di quello che era il C e poi lo ha espanso con nuovi concetti, primo fra tutti quello degli oggetti.
Sinceramente ho sempre pensato che fosse piu comprensibile partire con esempi del C e arrivare pian piano ai concetti del C++ che partire subito con quest'ultimo in quanto classi, oggetti e altri concetti legati al C++ sinceramente penso che siano molto ostici da capire per chi è alle prime armi e non sa niente di programmazione.
Anzi, per dirla tutta ho visto che pure il C per chi è all'inizio è ostico, vedo che si fa parecchia fatica a capirlo, figuriamoci il C++.
Detto questo, la distinzione che fai tu di C/C++ non è perfettamente corretta... vero che quello che c'è nel listato ricorda piu il C che il C++ ma è anche vero che io compilo tutto con il compilatore del C++ e se me lo compila per me è C++ Tounge
quello che intendo dire è che tu sei libero in C++ di utilizzare tutto quello che già funzionava in C, non per questo non è piu un programma in C++ e visto che lo scopo di questi post è chiarire le basi nel modo piu semplice possibile i concetti del linguaggio mi pareva che questo fosse il modo migliore.

Del resto mi ricordo quando ho visto per la prima volta cose come il cin oppure il cout<<"testo"; come dici tu, oppure l'uso dei namespace etc e devo dire che il tutto mi pareva abbastanza complicato e oscuro.

Il concetto di usare un printf al posto di un cout<< è che il printf è una funzione, che quindi è piu facile da capire da un utente che magari le ha già viste in altri linguaggi, e comunque piu facile quando gli spiegherò che può scriversi una sua funzione stampaTesto, al che noterà le somiglianze.
Se gli dici che per printare un testo deve usare
cout << "Mi chiamo " << var_name << " e la mia età è " << var_età;

mi sa che non ci capisce molto
se poi gli devi spiegare cosa sia cout, gli devi spiegare degli stream... e vagli a spiegare uno stream ad uno che ancora non sa cosa sia un programma... la vedo dura...

Oltre a tutto ciò il fatto che dici che in c++ devi usare iostream invece che stdio.h non è proprio corretto.
Tu usi quello che ti serve, intendo, se in un programma C++ non hai bisogno degli stream, semplicemente NON includi iostream (che comunque non è iostream.h)
E siccome stdio.h è compatibile in C++ se vuoi lo usi, cosa che ho fatto io.
Poi a voler essere precisi, se avessi voluto usare l'header C++ giusto avrei dovuto usare cstdio (non stdio.h e nemmeno cstdio.h)

Quindi riassumendo, si, piu che altro è un listato C ma mi sono concesso la licenza poetica diciamo cosi di utilizzarlo come base per avvicinarmi a spiegare il C++

Vi ho tediati con tutto sto discorsone?? Happywide

p.s. grazie alla critica costruttiva mi sono accorto che non avevo messo int come valore di ritorno della funzione main, cosa non accettata dal C++ Wink
inoltre già che c'ero ho formattato il codice con il nuovo fighissimo modulo di syntax highl. inserito dal nostro mitico admin

p.s.2. continuate a farmi notare inesattezze/errori/contraddizioni/cazzate, provvederò a sistemare i contenuti dove necessario, mica vogliamo che le nostre guide deviino i futuri coders dalla retta via, grazie



digger
14/03/2011, 20:26
#5
Cerca

Iscritto
Messaggi: 119
Discussioni: 9
Registrato: 03-2011
Mix: 0
Per carità, è vero che funziona lo stesso, ma io, sapendo programmare sia in C che in C++ e vedendo il codice che tu hai scritto (interamente in C) e il titolo della guida che è guida al C++ ho detto che c'era qualcosa che non andava, alla fine non posso sapere che tu scrivi C++ solo perchè compili in C++ un codice scritto in C...

14/03/2011, 21:19
#6
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 14/03/2011, 23:05 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
mi sa che non hai capito il punto, il punto non era quello, era che l'idea "generale" è quella di arrivare a spiegare un po' il C++ visto che nelle hacks compare piu volte, però restando sul "semplice". Se le guide le avessi chiamate "Il C" poi un giorno avresti commentato "ma come? questo è C++"
Fin dall'inizio ho detto che per imparare bene la cosa migliore è prendersi un libro, l'idea di queste guide è dare una mano a chi è a zero per partire a codare e capire qualcosa di quello che poi si vede nelle hacks
Comunque visto che sai codare in C e C++ (e magari altro) se hai voglia e tempo di scrivere guide, dare consigli, uppare sources o altro qualsiasi contributo è il benvenuto Smile


digger
14/03/2011, 23:03
#7
Cerca

ZioPaperino VIP
Messaggi: 2,350
Discussioni: 667
Registrato: 03-2011
Mix: 0
Ma di che state parlando? omg

15/03/2011, 0:16
#8
Cerca

Iscritto
Messaggi: 119
Discussioni: 9
Registrato: 03-2011
Mix: 0
Ahahahahaha programmazione zio!!

15/03/2011, 0:25
#9
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
ah boh io di programmazione non capisco una beata *** Happywide


digger
15/03/2011, 1:00
#10
Cerca




Utenti che stanno guardando questa discussione: 1 Ospite(i)