Dilema C++

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
Post Reply
User avatar
Ranzler
Junior
Junior
Posts: 10
Joined: 06 Dec 2012, 19:15
Judet: Cluj
Location: Cluj-Napoca
Contact:

Dilema C++

Post by Ranzler » 09 Mar 2013, 18:52

Va salut domnilor , va cer ajutorul la o problema
am avut de rezolvat o problema in c/c++ la facultate , bun totul bine doar ca l-am facut in c programul e bun dar profesorul meu mi-a spus sa il scriu si in c++ ...
problema este cum fac afisarea %c in cout ? sau mai generalizat cum fac afisarile %c, %lf ,%Lf si asa mai departe ... In C e simplu dar in C++ nu stiu
am cautat pe net si am gasit ceva dar e complicat iar dupa logica nu ar trebui sa fie asa de complicat ! In speranta ca ma veti ajuta sau imi veti da idei va multumesc !
PS: Precizez ca folosesc VS 2012

Scrieti un progran care face o codare simpla prin adaugarea la codul ASCII al caracterului o valoare n=3 folosind macrouri
Exemplu a devine in urma codarii d */

#include<stdio.h>
using namespace std;
#define cod(a) a+3

void main()
{
char a;

printf("\nIntroduceti caracterul : ");
scanf("%c",&a);

printf("\nCaracterul introdus devine in urma codarii %c", cod(a));
printf("\n");
}


Cu respect , Ranzler

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Dilema C++

Post by Ovidiu Cucu » 10 Mar 2013, 10:51

In primul rand, scanf si printf sunt functii definite in biblioteca C standard.
Se pot folosi functii definite in biblioteca C standard (incluzand scanf si printf) si daca programezi in C++.
Cu asta ai putea spune ca ai rezolvat "dilema C++". Punct.

Insa asta e... in scoala, daca proful pune in cod cin si cout in loc de scanf si printf, atunci zice ca "preda C++". :)
Asa ca, incerc sa explic ce-i cu cin si cout, pe scurt si fara prea multe amanunte "tehnice" pentru ca in mod sigur nici voi (si probabil nici proful :)) nu stiti inca ce-i ala obiect, ce-s alea templates si cu ce se mananca supraincarcarea operatorilor.

Deci, pe scurt, cin si cout sunt doua obiecte globale de tip istream, respectiv ostream, definite in biblioteca C++ standard (STL - Standard Template Library).
Mai exact, se gasesc in headerul standard iostream, deci primul lucru pe care trebuie sa faci este sa incluzi acel header:

Code: Select all

#include <iostream>
Pentru istream (tipul lui cin) si ostream (tipul lui cout) sunt supraincarcati operatorii >> si respectiv << pentru citire de la, respectiv scriere la interfata de intrare/iesire standard (consola).
Ca si operanzi, poti avea date de diverse tipuri: char, int, float, etc...
Exemplu:

Code: Select all

include <iostream>
using namespace std;
int main()
{
   char a;
   cout << "introdu caracter: ";
   cin >> a;
   cout << "caracterul introdus este: " << a << endl;

   double d;
   cout << "introdu un numar zecimal: ";
   cin >> d;
   cout << "numarul introdus este: " << d << endl;

   return 0;
}

User avatar
Ranzler
Junior
Junior
Posts: 10
Joined: 06 Dec 2012, 19:15
Judet: Cluj
Location: Cluj-Napoca
Contact:

Re: Dilema C++

Post by Ranzler » 10 Mar 2013, 12:15

iti multumesc ovidiu pentru raspuns si da exact asa e ai dreptate , insa ovidiu eu vreau sa invat mai mult , gen cum fac o aplicatie pentru windows dastea... si stiu ca asa e la inceput cu console application , dar mnah eu sunt capabil sa invat repede daca mi se ofera informatiile potrivite , chiar imi place programarea dar asta e daca la nivel "deasta" lucram ...
Cu respect , Ranzler

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Dilema C++

Post by Ovidiu Cucu » 10 Mar 2013, 12:48

Hopa! Am sarit de la probleme cu cin si cout direct la programarea Windows... :)

Nu-i nimic, daca te pasioneaza si vrei intradevar sa inveti sa programezi cu Windows API, gasesti tutoriale pe internet.
Un exemplu bunicel, gasesti aici: theForger's Win32 API Tutorial.
La fel, exista si carti cu ajutorul carora poti porni la drum.
Una foarte buna pentru incepatori si nu numai, este cartea lui Charles Petzold: Programming Windows.
O editie mai veche (insa destul de actuala) a fost tradusa si la noi sub numele Programare in Windows 95.
Sa nu te sperie acel "Windows 95" din titlu, e doar o gaselnita a marketorilor de la editura. Principiile de baza ale programarii Windows au ramas aceleasi deci, cum am mai spus, cartea e inca destul de actuala.

In fine, ca si sfat, eu zic sa inveti mai intai progrmarea in consola, asa bine-rau cum ti-o preda la scoala.
Dupa aceia, sau dupa ce stapanesti cat de cat libajul C si/sau C++, poti trece si la programare Windows.
Ai sa constati din start ca e cu totul alta "filozofie" decat in consola si in plus, e un domeniu foarte, foarte vast.

Bafta!

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Dilema C++

Post by Ovidiu Cucu » 10 Mar 2013, 13:10

O lista cu carti despre programare Windows am pus-o aici: viewtopic.php?f=31&t=1723

Programming Windows, de Charles Petzold, este dupa cum am mai spus foarte buna, in special pentru incepatori.
Win32 Programming, de Brent Rector si Joseph M. Newcomer e o adevarata "biblie" de programare GUI (Graphical User Interface) in Windows.
Windows via C/C++, de Jeffrey Richter si Christophe Nasarre vine in completare cu procese, thread-uri, fisiere, etc. Este pentru programatori mai avansati, totusi destul de accesibila.

Or fi si multe altele insa eu pe astea l-am avut, le-am rasfoit si nu numai... din ele am invatat cate ceva.
Deci, le recomand oricui cu caldura.


User avatar
Ranzler
Junior
Junior
Posts: 10
Joined: 06 Dec 2012, 19:15
Judet: Cluj
Location: Cluj-Napoca
Contact:

Re: Dilema C++

Post by Ranzler » 14 Mar 2013, 12:31

multumesc pentru tot
Cu respect , Ranzler

User avatar
black_atus
Membru
Membru
Posts: 139
Joined: 20 Jun 2012, 10:20
Judet: Prahova
Location: Ploiesti

Re: Dilema C++

Post by black_atus » 21 May 2013, 16:40

Si noua ne-au bagat pe gat functiile din iostream.h ... Ce-i drept sunt mai usor de folosit..nici nu trebuie sa sti tipul variabilelor la afisare :D
cout>>var1>>" ">>var2>>" " ... etc.. prefer printf() si scanf() :D
Cu stima,
Daniel Constantin

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: Dilema C++

Post by MrSmersh » 25 May 2013, 22:40

Off topic : S-a pomenit Richter si nu am fost pe faza :biggrin:
On topic cu Petzold si Richter, daca le intelegi, programarea Windows "normal" e acoperita... RT e alta poveste

Post Reply