PDA

View Full Version : [(c++)+(c)] usare l'io del c per programmi in c++


AngeL)
18-10-2006, 15:04
in questi giorni, scrivendo qualche programma in c, mi sono reso conto dell'incredibile semplicità del suo sistema di io:
in c++ per scrivere un codice che stampi
"la variabile x vale (valore di x)
la variabile y vale (valore di y)"
bisogna scriverecout << "La variabile x vale " << x << endl << "La variabile y vale " << y << endl;mentre in c basta scrivereprintf("La variabile x vale %d\nLa variabile y vale %d\n",x,y);vorrei quindi scrivere codice c++ usando stdio.h al posto di iostream, senza usare il namespace std.
è possibile?

andbin
18-10-2006, 15:25
vorrei quindi scrivere codice c++ usando stdio.h al posto di iostream, senza usare il namespace std.
è possibile?Certo! Includi stdio.h e sei a posto.

AngeL)
18-10-2006, 15:44
Certo! Includi stdio.h e sei a posto.
ah ok :D
grazie :)

cionci
18-10-2006, 18:13
Devi includere <cstdio>, stdio.h non è più un header standard...

In ogni caso ti consiglio di restare sull'I/O del C++, perchè, anche se può sembrare più complesso, è certamente più sicuro...
Nell'I/O del C sono diffusi vari possibili buffer overflow...se non è gestito in modo oculato...
Mentre con l'I/O del C++ puoi usare string per astrarre le stringhe e quindi limitare i possibili overflow in input...

tomminno
19-10-2006, 00:06
Devi includere <cstdio>, stdio.h non è più un header standard...

In ogni caso ti consiglio di restare sull'I/O del C++, perchè, anche se può sembrare più complesso, è certamente più sicuro...
Nell'I/O del C sono diffusi vari possibili buffer overflow...se non è gestito in modo oculato...
Mentre con l'I/O del C++ puoi usare string per astrarre le stringhe e quindi limitare i possibili overflow in input...

A volte sono obbligato ad usare l'IO del C in programmi C++ semplicemente perchè con il compilatore non sono inclusi gli stream del C++, vedi embedded VC4, e l'STLPort non compila per il solito problema M$ di interpretazione errata degli include :muro:

trallallero
19-10-2006, 10:01
Devi includere <cstdio>, stdio.h non è più un header standard...
:mbe: are you jokin' ?

cionci
19-10-2006, 11:40
:mbe: are you jokin' ?
Tutte le librerie del C standard vanno incluse cosi' in C++:

#include <cstdio>
#include <ctime>
#include <cstdlib>

Anche se di fatto sono solo le librerie C standard incluse nel namespace std ;)

trallallero
19-10-2006, 11:42
Tutte le librerie del C standard vanno incluse cosi' in C++:

#include <cstdio>
#include <ctime>
#include <cstdlib>

Anche se di fatto sono solo le librerie C standard incluse nel namespace std ;)
:doh: avevo capito che stdio.h non fosse piú standard in assoluto :D
ci sarebbe stato qualche problemuccio qui in banca :asd:

cionci
19-10-2006, 11:50
No...solo nel senso del nome :D