Xaratroom (Ex-Member)
Expert
Messaggi: 526
Iscritto: 03/04/2008
|
Postato originariamente da nessuno:
Perchè ti ostini - in C++ - ad usare char e array di char invece che oggetti di classe string ?
Se vuoi imparare il C, allora è un'altra cosa ... |
Credo perchè non abbia la più pallida idea di cosa siano ...
Ma dai ragazzi ... aiutare ok, ma qui iniziamo a fare i professorini perchè lui non vuoe studiare un pochetto...
Cioè a tutti piace tradurre un programma dal pascal al c in questo modo Ultima modifica effettuata da Xaratroom il 27/02/2010 alle 21:43 |
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da Xaratroom:
Postato originariamente da ilmettiu:
In C++ sono obbligatorie anche quando l'istruzione all'interno del blocco If è una sola?
In C Ansi e Pascal si possono omettere, in quel caso. |
Le parentesi graffe possono essere omesse....
Codice sorgente - presumibilmente C/C++ |
if (stringa[0] == 'a')
if (stringa[1] == 'b')
if (stringa[2] == 'c')
cout << "La stringa inizia con abc";
|
Consiglio ad a_butta di comprare un libro e iniziare dalle basi: è assurdo che un utente abbia simili dubbi
|
Le parentesi graffe possono essere omesse, ma solo quando si esegue un unica istruzione. Essendo più if uno dentro all'altro alcuni compilatori danno errori... Ultima modifica effettuata da il 28/02/2010 alle 11:06 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Postato originariamente da D@vide:
Le parentesi graffe possono essere omesse, ma solo quando si esegue un unico comando. Essendo più if uno dentro all'altro alcuni compilatori danno errori... |
Ma la if è una istruzione ... quindi, puo' andare benissimo ... e il fatto che "dipenda" dai compilatori, non è vero (a meno che i compilatori non abbiano dei bug).
P.S. Giusto ... Ultima modifica effettuata da nessuno il 27/02/2010 alle 23:45
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à. |
|
Xaratroom (Ex-Member)
Expert
Messaggi: 526
Iscritto: 03/04/2008
|
Postato originariamente da D@vide:
Le parentesi graffe possono essere omesse, ma solo quando si esegue un unico comando. Essendo più if uno dentro all'altro alcuni compilatori danno errori... |
Premettendo che si chiamano istruzioni e non comandi...
Puoi indicare quali compilatori non ammettono quella scrittura ?
Io ho sempre ridotto al minimo l'utilizzo delle graffe e non ho mai avuto problemi o malfunzionamenti.
Tanto è vero che una selezione a più vie può essere scritta in questo modo:
Codice sorgente - presumibilmente Delphi |
if (<condizione>) { <istruzioni> } else if (<condizione>) { <istruzioni> } else if (<condizione>) { <istruzioni> } else { <istruzioni> }
|
Quindi, dal momento che spazi e tabulazioni vengono eliminati dal compilatore:
Codice sorgente - presumibilmente Delphi |
if (<condizione>) { <istruzioni> } else if (<condizione>) { <istruzioni> } else if (<condizione>) { <istruzioni> } else { <istruzioni> }
|
Comunque ho provato il codice:
Codice sorgente - presumibilmente C++ |
#include <iostream> using namespace std; int main() { char stringa[20]; while (1) { cin >> stringa; if (stringa[0] == 'a') if (stringa[1] == 'b') if (stringa[2] == 'c') cout << "La stringa inizia con abc\n"; } return 0; }
|
Su microsoft visual studio, borland turbo c++ ... poi ho provato a compilare anche con gcc.
Non si sono verificati errori né a compile time né a run time. |
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da Xaratroom:
Postato originariamente da D@vide:
Le parentesi graffe possono essere omesse, ma solo quando si esegue un unico comando. Essendo più if uno dentro all'altro alcuni compilatori danno errori... |
Premettendo che si chiamano istruzioni e non comandi...
Puoi indicare quali compilatori non ammettono quella scrittura ?
Io ho sempre ridotto al minimo l'utilizzo delle graffe e non ho mai avuto problemi o malfunzionamenti.
Tanto è vero che una selezione a più vie può essere scritta in questo modo:
Codice sorgente - presumibilmente Delphi |
if (<condizione>) { <istruzioni> } else if (<condizione>) { <istruzioni> } else if (<condizione>) { <istruzioni> } else { <istruzioni> }
|
Quindi, dal momento che spazi e tabulazioni vengono eliminati dal compilatore:
Codice sorgente - presumibilmente Delphi |
if (<condizione>) { <istruzioni> } else if (<condizione>) { <istruzioni> } else if (<condizione>) { <istruzioni> } else { <istruzioni> }
|
Comunque ho provato il codice:
Codice sorgente - presumibilmente C++ |
#include <iostream> using namespace std; int main() { char stringa[20]; while (1) { cin >> stringa; if (stringa[0] == 'a') if (stringa[1] == 'b') if (stringa[2] == 'c') cout << "La stringa inizia con abc\n"; } return 0; }
|
Su microsoft visual studio, borland turbo c++ ... poi ho provato a compilare anche con gcc.
Non si sono verificati errori né a compile time né a run time. |
co gcc a me restituisce
Codice sorgente - presumibilmente C/C++ |
/tmp/cc4diBmP.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
|
..
boh |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Se compili codice C++, per linkare sempre le corrette librerie, devi usare il compilatore
g++
e non il gcc
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à. |
|
Xaratroom (Ex-Member)
Expert
Messaggi: 526
Iscritto: 03/04/2008
|
Postato originariamente da nessuno:
Se compili codice C++, per linkare sempre le corrette librerie, devi usare il compilatore
g++
e non il gcc |
In realta g++ è uno script che chiama gcc, quindi, il compilatore è gcc. |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Sì ... ma lo script g++ chiama gcc con opzioni specifiche per trattare codice C++ con le corrette librerie ...
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à. |
|