Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Utilizzo di una variabile CHAR
Forum - C/C++ - Utilizzo di una variabile CHAR - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Xaratroom (Ex-Member)
Expert


Messaggi: 526
Iscritto: 03/04/2008

Segnala al moderatore
Postato alle 21:42
Sabato, 27/02/2010
Testo quotato

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
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:17
Sabato, 27/02/2010
Testo quotato

Postato originariamente da Xaratroom:

Testo quotato

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++

  1. if (stringa[0] == 'a')
  2.          if (stringa[1] == 'b')
  3.                   if (stringa[2] == 'c')
  4.                            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
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:41
Sabato, 27/02/2010
Testo quotato

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à.
PM Quote
Avatar
Xaratroom (Ex-Member)
Expert


Messaggi: 526
Iscritto: 03/04/2008

Segnala al moderatore
Postato alle 23:42
Sabato, 27/02/2010
Testo quotato

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

  1. if (<condizione>) {
  2.          <istruzioni>
  3. } else if (<condizione>) {
  4.          <istruzioni>
  5. } else if (<condizione>) {
  6.          <istruzioni>
  7. } else {
  8.          <istruzioni>
  9. }


Quindi, dal momento che spazi e tabulazioni vengono eliminati dal compilatore:
Codice sorgente - presumibilmente Delphi

  1. if (<condizione>) {
  2.         <istruzioni>
  3. } else
  4.         if (<condizione>) {
  5.                 <istruzioni>
  6.         } else
  7.                 if (<condizione>) {
  8.                         <istruzioni>
  9.                 } else {
  10.                         <istruzioni>
  11.                 }



Comunque ho provato il codice:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.         char stringa[20];
  7.         while (1) {
  8.                 cin >> stringa;
  9.                 if (stringa[0] == 'a')
  10.                          if (stringa[1] == 'b')
  11.                                           if (stringa[2] == 'c')
  12.                                                            cout << "La stringa inizia con abc\n";
  13.         }
  14.         return 0;
  15. }


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.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:24
Domenica, 28/02/2010
Testo quotato

Postato originariamente da Xaratroom:

Testo quotato

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

  1. if (<condizione>) {
  2.          <istruzioni>
  3. } else if (<condizione>) {
  4.          <istruzioni>
  5. } else if (<condizione>) {
  6.          <istruzioni>
  7. } else {
  8.          <istruzioni>
  9. }


Quindi, dal momento che spazi e tabulazioni vengono eliminati dal compilatore:
Codice sorgente - presumibilmente Delphi

  1. if (<condizione>) {
  2.         <istruzioni>
  3. } else
  4.         if (<condizione>) {
  5.                 <istruzioni>
  6.         } else
  7.                 if (<condizione>) {
  8.                         <istruzioni>
  9.                 } else {
  10.                         <istruzioni>
  11.                 }



Comunque ho provato il codice:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.         char stringa[20];
  7.         while (1) {
  8.                 cin >> stringa;
  9.                 if (stringa[0] == 'a')
  10.                          if (stringa[1] == 'b')
  11.                                           if (stringa[2] == 'c')
  12.                                                            cout << "La stringa inizia con abc\n";
  13.         }
  14.         return 0;
  15. }


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++

  1. /tmp/cc4diBmP.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
  2. collect2: ld returned 1 exit status

..
boh

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:43
Domenica, 28/02/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à.
PM Quote
Avatar
Xaratroom (Ex-Member)
Expert


Messaggi: 526
Iscritto: 03/04/2008

Segnala al moderatore
Postato alle 12:55
Domenica, 28/02/2010
Testo quotato

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.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:59
Domenica, 28/02/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à.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo