Olen aloittelija ja kokeilin tehdä yksinkertaisen koodin, joka ei kuitenkaan toimi.
#include
int main ()
{
char pressa[10];
cout > pressa;
if (pressa == "halonen") {
cout
#include
int main ()
{
char pressa[10];
cout > pressa;
if (pressa == "halonen") {
cout
Vastaukset 8
Vanhimmat
- Korvaa if (pressa == "halonen") kohta strncmp -funktiolla
- char pressa[10] ois hyvä olla vähän isompi
#include
#include
int main ()
{
std::string pressa;
std::cout > pressa;
if (pressa == "halonen") {
std::cout
Te ja teidän C :nne.
Tosi mies kooda C:tä!(koska c oli liian edistynyttä hänen pienille putki aivoilleen)
using namespace std;
hiukan levotonta lukea koodia, kun samaa std:: hässäkkää jokaisen käskyn / muuttujan edessä.
Voi olla että C:hen tottuneille tälläinen käytäntö näyttää erikoiselta mutta minusta taas se selventää koodia.
Myönnän että se voi olla vähän turhaa näin pienessä ohjelmassa olla käyttämättä 'using namespace std':tä mutta sitten kun alat kirjoittaa ohjelmia jotka käsittää monta kirjastoa ja nimiavaruuksia joilla on samannimisiä funktioita niin sitten siitä on hyötyä.
Jos välttämättä ei jaksa sitä kirjoittaa niin kannattaa mielumin sitten ottaa käyttöön ainoastaan ne funktiot std:stä kun tarvitsee käyttämällä
using std::cout;
using std::cin;
jne.
http://www.janko.at/Humor/Computerwelt/using namespace std.htm
http://www.informit.com/articles/article.asp?p=18091&seqNum=3&rl=1
pah tosi mies koodaa pasikilla tai paskalla.
näin oon kuullu
#include
#include
#include
int main ()
{
char pressa[10];
printf("Kuka on Suomen presidentti?\n);
gets(pressa);
if (strcmp(pressa, "halonen")){
printf("Oot oikeessa\n");
}
else printf("Ei ole\n");
system("PAUSE");
}
Sait jo vastauksen. Selitänpä vielä, että tuo kohta:
if (pressa == "halonen")
ei tee mitä luulet. char pressa[10] on merkkitaulukko ja pressa on silloin osoitin. Osoittimien vertailu on eri asia kuin merkkijonojen vertailu ja siksi merkkijonojen (string) käyttöä suositeltiin jo.
Mitä tuo tekee oikeasti? Se vertaa kahta muistipaikan osoitetta, joista toinen on antamasi merkkijonon "halonen" osoite ja toinen on pressa[]-taulukon osoite. Ne ovat varmasti erisuuria. (Osoite tarkoittaa yksinkertaisesti lukua, joka kertoo missä päin muistia tieto on.)
Jos et tiedä mitä pointterit ovat, opettele heti kun kerkeät. Sitä ennen, älä käytä taulukoita []-syntaksilla. Käytä vector-luokkaa. Käytä referenssejä. Käytä olioita, joille on yliladattu ==-operaattori (kuten se string).
C on vaikea kieli. Tuollaisia virheitä tekevät kaikki alussa, ellei ole vahva C-tausta. C-ohjelmoijat tekevät toisenlaisia virheitä :-)