Begynder spørgsmål

Tags:    c++ c++

<< < 123 > >>
Jeg er lige gået igang med "Learn C++ in 21 days" programmet, og jeg sidder allerede fast her på day 1, fordi der er et af test programmerne der ikke virker som det skal. (er det bare mig eller sker det rigtig tit???)

Anyways, koden er således:

#include <iostream.h>
int main()
{
int x = 5;
int y = 7;
cout "\\n";
cout << x + y << " " << x * y;
cout "\\n";
return 0;
}

Og jeg får denne spiffy fejl når jeg prøver at compile programmet. (hvilket jeg i øvrigt gør med Borland C++ compiler hvis det har nogen betydning)

C:\\Borland\\BCC55\\Myfiles\\calculator thingy>bcc32 calc.cpp
Borland C++ 5.5.1 for Win32 Copyright <c> 1993, 2000 Borland
calc.cpp:
Error E2379 calc.cpp 6: Statement missing ; in function main()
Warning W8084 calc.cpp 7: Suggest parentheses to clarify precedence in function main()
Warning W8084 calc.cpp 7: Suggest parentheses to clarify precedence in function main()
Error E2379 calc.cpp 8: Statement missing ; in function main()
*** 2 errors in Compile ***


Jeg har copy/pastet hele koden ind i Scite (c++ editor) men det virker bare ikke, og jeg har lidt på fornemmelsen at hvis jeg bare går videre så misser jeg et eller andet vigtigt.

Jeg har selv prøvet at debugge så godt som en komplet nybegynder nu kan, så vidt jeg kan se mangler der et ";" i denne sætning "cout "\\n";", og det har jeg også prøvet at sætte ind forskellige steder, men det har ikke hjulpet.

Jeg håber nogen kan hjælpe mig videre, det er lidt træls at blive bremset af noget som det her helt i starten...



21 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Når jeg engang skriver et styresystem der vil revolutionere windows og linux må du få en kopi gratis :-)


Held og lykke! Jeg har samme planer, men er ikke kommet særligt langt endnu :-D (har også haft travlt med andre ting)

Jeg ville lige sige at du kan lave det i C-kode eller C++-kode. I nybegynderprogrammer er der mindre, men vigtige, forskelle. Senere hen vil du også opdage at der faktisk er store forskelle. Jeg vil selvfølgelig håbe at du skriver programmet i C++-kode, da det er det du er ved at lære. Problemet er at man kan blande C- og C++-kode sammen uden at compileren brokker sig. Man kan (desværre) nemt få sig nogle dårlige vaner med delvist at benytte C-kode og C-standard-ting i et C++-program.

C-kode:
Fold kodeboks ind/udKode 


C++-kode:
Fold kodeboks ind/udKode 


Jeg vil også råde dig til at bruge endl (som vist) i stedet for "\\n", da det er nemmere at se hensigten, hvis andre skulle rette i dit program, når du bruger endl end "\\n" (nemlig det at du vil lave et linieskift). Desuden gør man det mindre OS-specifikt. Man kunne f.eks. forestille sig at et OS brugte andre kontroltegn end \\n til linieskift (selvom det er meget usandsynligt, når man blot holder sig inden for applikationer til PC'er).

/ Bjarke

--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
*** Matematisk Student anno 2003!! *** (Juhuu...)



Hej Peter !!!
Du skrev en kode hvor der manglede to <<, hvilket man ikke glemmer så tit når man lærer hvad tegne står for. (se evt. tidligere kode eks.)

Når du bruger "cout" arbejder du med "streams" (hvilket igrunden blot er en strøm af data), og her bruges altid << eller >>. Streams kan bruges til mange forskellige strømme af data, f.eks. data til filer.

Altså kort og godt bruges cout bruges "<<" (Betyder noget der kommer ud) og bruges cin bruges ">>" (Betyder noget der kommer ind)

> (er det bare mig eller sker det rigtig tit???)
Det syntes jeg ikke, men det kan nok godt virke sådan i starten. Programmering er noget med syntax, og det kan godt forkomme lidt anderledes i starten at man skal overholde dette, men man lærer det stille og roligt. Bare roligt før du ved af det er det bare noget du skriver og overholder....

Hvis bare du lære at forstå hvordan hvilke tegn og udtryk bruges.
God fornøjelse med C++ programmeringen.

Best Regaards
Janus S. Andersen

* Life is a dream in a programmers heaven *



prøv at skrive følgende:
Fold kodeboks ind/udKode 


Jeg vil tro at det var fordi, du manglede << i dine linjeskift sætninger...

Og du skal lige huske at skrive:

Fold kodeboks ind/udKode 


under din include sætning... Ellers overholder du ikke standarden...

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk

[Redigeret d. 19/06-03 17:41:17 af Jimmi Westerberg]



Ikke fordi jeg er sindsyg expert til c++, jeg har da leget lidt med det.
Men jeg ville lave det sådan her:

Fold kodeboks ind/udKode 


eller er det mig der ikke forstår?

Hilsen k-roy
(christian bekker A.)
www.kroy.h4f.dk
-- Problemer er til for at blive løst :) --



Burde man ikke bruge << hver gang man bruger Cout?
Har aldrig set før, at man kan bruge Cout med uden <<.
Standarten er jo at bruge std::cout og std::cin
Man bruger using namespace std; for at gøre koden nemmere, men standtarten må være at skrive std::cout.

Med Venlig Hilsen: CHadi
http://chadi.h4f.dk



prøv at skrive følgende:
Fold kodeboks ind/udKode 


Jeg vil tro at det var fordi, du manglede << i dine linjeskift sætninger...

Og du skal lige huske at skrive:

Fold kodeboks ind/udKode 


under din include sætning... Ellers overholder du ikke standarden...

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk

[Redigeret d. 19/06-03 17:41:17 af Jimmi Westerberg]


"Ellers overholder du ikke standarden" Det har da ikke noget med standarden at gøre? det er jo bare noget du inkluderer så du slipper for at skrive std::cout og std::cin, afaik ;)

Hilsen Peter aka XtenS
xtens@beerteam.dk
------------------------
Hvis man blander vand og salt, så bliver det til ILD!




"Ellers overholder du ikke standarden" Det har da ikke noget med standarden at gøre? det er jo bare noget du inkluderer så du slipper for at skrive std::cout og std::cin, afaik ;)

Hilsen Peter aka XtenS
xtens@beerteam.dk
------------------------
Hvis man blander vand og salt, så bliver det til ILD!


aha?... Dvs. at du er ligeglad med om det er ANSI/ISO compliant?

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



nå jeg prøvede lige at compile den. den laver fejl. :)
men ikke samme. hvad går cout "/n" nu?


Hilsen k-roy
(christian bekker A.)
www.kroy.h4f.dk
-- Problemer er til for at blive løst :) --
Hilsen k-roy
(christian bekker A.)
www.kroy.h4f.dk
-- Problemer er til for at blive løst :) --




#include <iostream.h>
int main()
{
int x = 5;
int y = 7;
cout "\\n";
cout << x + y << " " << x * y;
cout "\\n";
return 0;
}


Du er noedt til at skifte namespace, hvis du vil skrive det paa denne maade. Kommandoen cout befinder sig i namespace std, saa enten skriver du i starten af dit program "using namespace std" eller ogsaa skal du skrive "std::cout" istedet for "cout" ...

Denne funktionalitet er til stede for at give mulighed for modulaer programmering. Du kan saa at sige gruppere funktioner og data i seperate namespaces.

Include-filen skal hedde "iostream" og ikke "iostream.h" ..

[Redigeret d. 19/06-03 20:23:24 af Mads]



Burde man ikke bruge << hver gang man bruger Cout?
Har aldrig set før, at man kan bruge Cout med uden <<.
Standarten er jo at bruge std::cout og std::cin
Man bruger using namespace std; for at gøre koden nemmere, men standtarten må være at skrive std::cout.


Du har ret. Havde ikke set, at han havde udeladt "<<". Det kan naturligvis ikke lade sig gøre.

Man kan godt dumpe hele standard namespace i global namespace og det sparer da sikkert også et par tastetryk. Smag og behag, men jvf. Stroustrup er det ikke god kotume, da det strider imod data-hiding princippet eller sagt på en anden måde, så forsvinder modulariteten i programmet.



<< < 123 > >>
t