Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Header in C++: cu sau fara ".h"  (Citit de 4878 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
cruox
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« : Iulie 15, 2007, 20:41:36 »

In cartea "Thinking in C++" (2nd revision) peste tot se foloseste headere fara .h, si zice ca standardul exclude .h.
In cartea respectiva hellowordul incepe in modul urmator:
Cod:
#include <iostream>
using namespace std;
si nu
Cod:
#include <iostream.h>
/* nu apare precizarea namespaceului */
Am incercat sa compilez hello worldul c++ cu GCC de sub FreeBSD, si cu Dev-C++ de sub Windows, ambele urlau ca conform sectiunii 17.nu.stiu.nr.subcapitolului din standardul C++, trebuie sa folosesc headerurile in forma <X> in loc de <X.h>.
Thinking in C++ zice ca headerele C X se includ sub forma de <cX> in loc de <X.h> deci, de exemplu:
Cod:
#include <cstdio>
Eu acum am terminat clasa a VIII-a, iar aveam un profesor de informatica caruia nu prea ii pasea daca invatam.. ne lasea sa joacem.. cine juca.. incercasem la el.. Ii ziceam ca ar fi mai bine, dar zicea ca numai eu vreau, si daca restul clasei nu vrea, el lasa sa facem ce vrem.
Intre timp, de la clasa a V-a am invatat o gramada de limbi web de la HTML la Ruby, la care, zic eu, ma cam pricep, chiar daca nu pot sa creez algoritmi mai complexe - datorita lipsei de ore reale de informatica.
Totusi, considerand ca incepand cu clasa a IX-a primim un profesor nou, care antreneaza si olimpiconi, as vrea sa incep cu C++.. Am incercat C parca in clasa a VI-a, cu cartea Ritchie, si Kernighan (nu mai stiu daca-i "K-e-r-n-i-g-h-a-n"), si ceva-ceva am retinut, totusi acum consider ca era prea avansat atunci pentru mine.
Am rezultate bune la olimpiade de chimie, fizica, mate (si nu numai, dar acestea sunt mai la tema), deci "ar trebui" sa fac ceva si la informatica anul urmator.
Liceul unde am cvalificat are laburi destul de avansate (Pentium D 820-uri cu 512 mb sau 1 gb memorie), dar pentru dezvoltare C++ se foloseste Borland C++ (versiunea ala veche, de la sfarsitul anilor '80, sau inceputul '90) care nu accepta headeri in forma <X>, ci numai <X.h>.

Eu as dori sa folosesc limbajul ales cat se poate corect, deci vreau sa aflu ca la olimpiade ce compilere se folosesc (sau aleg eu?), incepand cu judeteana. Nu stiu daca cu un trecut asemanator am multe sanse, insa sper.. si, in primul rand, vreau..
La 27-29 am o olimpiada nationala de stiinte (fiz-chim-bio), iar dupa aia ma apuc 24/7 de C++.
Niste sfaturi, va rog.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #1 : Iulie 15, 2007, 21:21:04 »

Din pacate in majoritatea liceelor din Romania, nu doar in cel in care vei invata tu, se foloseste Borland C++ 3.1. Deasemenea la olimpiada judeteana tot in Borland vei lucra Sad. De la nationala incolo, precum si la concursurile organizate pe internet, de obicei poti folosi g++.

Sfatul meu este sa inveti mai intai cum stau lucrurile in Borland, ca sa nu ai surprize neplacute la faza judeteana a olimpiadei. Faptul ca nu poti folosi headere de forma <cX> reprezinta una din micile, neimportantele diferente intre Borland si g++, dupa cum vei vedea mai incolo. Nu e nicio crima daca le scrii <X.h>.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
cruox
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #2 : Iulie 15, 2007, 21:23:17 »

Alte diferente exista, de care trebuie sa fiu constient? Adica dupa cum vad in cartea lui Bruce Eckel se foloseste peste tot versiunea standard.

Apropo: de unde pot sa iau Borland C++ 3.1? Am cautat peste tot, insa ori siteuri chinezesti gasesc, ori subiecte de pe forumul softpedia nerezolvate, s.a.m.d. Se pare ca se foloseste numai in liceele romanesti  Applause
« Ultima modificare: Iulie 15, 2007, 21:49:58 de către Cserei Zoltan » Memorat
skyel
Nu mai tace
*****

Karma: 29
Deconectat Deconectat

Mesaje: 263



Vezi Profilul
« Răspunde #3 : Iulie 15, 2007, 22:07:58 »

de pe dc++...eu acolo l-am gasit
Memorat
cruox
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #4 : Iulie 15, 2007, 22:09:00 »

Un hub poti sa-mi zici?
Memorat
skyel
Nu mai tace
*****

Karma: 29
Deconectat Deconectat

Mesaje: 263



Vezi Profilul
« Răspunde #5 : Iulie 15, 2007, 22:11:23 »

nu stiu ca e ceva timp de cand nu mai am dc...dar ai acolo o lista de public hubs si iti alege si tu pe alea cu multi utilizatori  Tongue
Memorat
cruox
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #6 : Iulie 15, 2007, 22:19:04 »

Apropo.. o carte antica? Care m-a invata C++ a la Borland C++ 3.1. Caci consider ca fiind newb nu prea pot detecta diferentele.. adik.. damn romanian high schools.. adik.. am nevoie de o carte veche, dar buna.
Memorat
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #7 : Iulie 15, 2007, 23:05:29 »

Faza e ca in momentul in care au facut standardul C++, au rescris librariile. Totodata C++ aduce namespaceuri si s-au gandit sa inglobeze librariile in namespace-ul std.
Deci, diferenta dintre <ceva.h> si <ceva> este ca varianta .h este C, iar cealalta pentru C++. Diferente efectiv intre ele nu sunt, decat la cod intern si faptul ca cele C++ sunt intr-un namespace.
see: http://www.cplusplus.com/doc/tutorial/namespaces.html

Pana una alta, zic sa te inveti sa scrii cod cat mai pur C. Asa nu o sa ai probleme cu diferentele dintre compilatoare (BorlandC sau G++). In ciuda denumirii BorlandC++ 3.1 NU este C++ standard (am mai tot zis asta pe forum si o sa continui sa zic); nici versiunile ulterioare nu cred ca sunt C++ standard. Abia cand o sa intelegi mai bine cum sta treaba sa te uiti peste STL sau mai stiu eu ce alte lucruri

Si recomand oricum sa folosesti
Cod:
#include<stdio.h>
...
printf/ scanf
« Ultima modificare: Iulie 15, 2007, 23:07:49 de către Valentin Stanciu » Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #8 : Iulie 16, 2007, 06:36:39 »

Cel mai bine ar fi sa lucrezi in borland pana la judet. Cred ca o carte buna e http://www.polirom.ro/titluri.cgi?action=titluri&class=details&id=1792 , se foloseste in multe licee ca si manual. Din chestia asta inveti sintaxa si algoritmica cam pana la nivel de clasa a9-a, judet.
Memorat

....staind....
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #9 : Iulie 16, 2007, 11:12:00 »

E ok cartea,  din ea am invatat si eu C Tongue
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
cruox
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #10 : Iulie 16, 2007, 13:18:22 »

Astept parintii sa vina acasa si comand toate cele 3 volume.. fortza C++aua  Yahoo! (btw, nus stelist)


Exista diferente de performanta intre cout/cin si printf/scanf? (parca printf/scanf are mai multe optiuni, ii mai customizabil)
« Ultima modificare: Iulie 16, 2007, 13:23:52 de către Cserei Zoltan » Memorat
tvlad
De-al casei
***

Karma: 63
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« Răspunde #11 : Iulie 16, 2007, 13:35:07 »

Cica printf / scanf sunt mai rapide, dar nu ar trebui sa se simta diferenta la cateva mii de numere.
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #12 : Iulie 16, 2007, 13:37:36 »

Citat
Exista diferente de performanta intre cout/cin si printf/scanf?

Da exista. La printf si scanf programul stie deja formatul datelor, cin//cout nu le stie. In concluzei printf/ scanf e mai bun. (am invatat asta din propie experienta)
Memorat
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #13 : Iulie 16, 2007, 17:44:12 »

printf/scanf e mai rapid; testat
Memorat
gogu
Client obisnuit
**

Karma: 42
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #14 : Iulie 16, 2007, 21:57:48 »

Citat
Exista diferente de performanta intre cout/cin si printf/scanf?

Da exista. La printf si scanf programul stie deja formatul datelor, cin//cout nu le stie. In concluzei printf/ scanf e mai bun. (am invatat asta din propie experienta)

De fapt cin si cout stiu exact tipul parametrilor pe cand printf si scanf trebuie sa parseze formatul care le este dat la fiecare apel. Citirea cu stream-uri e mult mai inceata in practica, ea avand totusi un potential mai mare decat citirea clasica din C.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines