Miksi h********ä muka en voi käyttää clrscr komentoa? Kääntäjäni (Dev-C++) ei löydä ohjelmasta virheitä, mutta valikkoon "Linker" tulee ilmoitus:
c:\documents and settings\tuomas\omat tiedostot\c++\first schoolday of my life v.1.0\untitled1.o(.text+0x1bd):untitled1.cpp: undefined reference to `clrscr'
Et vain ole linkannut tarvittavaa kirjastoa käyttääksesi tuota funktiota. Minulla ei ole mitään hajua, että kuuluuko mokoma edes stantardiin. Voi olla, että joudut kehittelemään oman "ruuduntyhjentäjän".
Edit: Niinjoo, varmaankin kannattaa valita otsikko, joka kuvaa ongelmaa. Tuollaiset ovat informaatioarvoltaan lähes nolla; ihmisiä ei (välttämättä) kiinnosta lukea epämääräisesti nimettyjä ketjuja.
C(++) ei tietääkseni sisällä sellaista, ei löydy ainakaan VC++:n ohjeista (sis. PlatformSDK).
Lisää vaikka makro:
#define Cls; {cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\
Siinä on 50 rivinvaihtoa.
Metabolix kirjoitti:
C(++) ei tietääkseni sisällä sellaista, ei löydy ainakaan VC++:n ohjeista (sis. PlatformSDK).
Lisää vaikka makro:
#define Cls; {cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ n\n\n";}
Siinä on 50 rivinvaihtoa.
mitä toi meinaa? Tai siis toki 50 rivinvaihtoa ajaa saman asian kuin ruuduntyhjennys mut toi #define Cls;?
Aruviel kirjoitti:
Edit: Niinjoo, varmaankin kannattaa valita otsikko, joka kuvaa ongelmaa. Tuollaiset ovat informaatioarvoltaan lähes nolla; ihmisiä ei (välttämättä) kiinnosta lukea epämääräisesti nimettyjä ketjuja.
yritän parantaa tapani.
Lisää Dev-C++:n Additional library / Object files (tms) kohtaan conio.o (hakemistopolun kera).
ttuoppi kirjoitti:
mitä toi meinaa? Tai siis toki 50 rivinvaihtoa ajaa saman asian kuin ruuduntyhjennys mut toi #define Cls;?
Tuo tarkoittaa, että aina kun koodissasi lukee "Cls;", esikääntäjä vaihtaa siihen tilalle sen "cout << [<50 rivinvaihtoa>]."
Minulla ainakin tulee vierityspalkki siihen viereen jos menee yli ruudun teksti. Miten sen saisi pois/tyhjennettyä kaikki tekstit?
fawkz kirjoitti:
Lisää Dev-C++:n Additional library / Object files (tms) kohtaan conio.o (hakemistopolun kera).
Ja includeta sorsaan "conio.h", tieten...
Edit: Googlettamalla lontooksi:
Include conio.h to your source, and add C:\Dev-C++\Lib\conio.o to "Further Object Files" in Project Options (where C:\Dev-C++ is where you installed Dev-C++)
Tai jos teet ohjelmaa windowsille/dossille, voit käyttää:
system("cls");
system funktio löytyy muistaakseni stdlib.h
ezuli kirjoitti:
system funktio löytyy muistaakseni stdlib.h
iostream.h :)
Ainakin Dev-C++ väittäisi sen olevan stdlib.h.
Kokeile vaikka kääntää seuraavat, jos et usko:
#include <stdio.h> #include <iostream.h> int main() { printf(" CCCC\n"); printf(" C C\n"); printf("C\n"); printf("C\n"); printf(" C C\n"); printf(" CCCC\n"); system("PAUSE"); return 0; }
#include <stdio.h> #include <stdlib.h> int main() { printf(" CCCC\n"); printf(" C C\n"); printf("C\n"); printf("C\n"); printf(" C C\n"); printf(" CCCC\n"); system("PAUSE"); return 0; }
Mulla on DevC++ 4.9.8.0 ja kyllä tämä mulla ainakin kääntyy
#include <iostream> int main() { system("PAUSE"); return 0; }
Mutta tuo alempi esimerkkisi kääntyy myös :S
Taitaa olla kummassaki... tai jotai.
No se on sitten joku uusi lisäys. Itselläni on Dev 4
Kysympä tässä samalla kun otsikko on sen verran laaja, että onko c++:ssa merkkijonon paloittelufunktioita? Eli siis tyyliin:
char tervehdys[20] = "Moro, kuis hurisee?"; left(tervehdys, tervehdys, 4); // arvon_saaja, luettava_muuttuja, merkkien_määrä printf("%s!", tervehdys); // Tulostaa "Moro!"
Gaxx kirjoitti:
onko c++:ssa merkkijonon paloittelufunktioita?
Funkkarista en tiedä, mutta voihan ne kopioida merkki merkiltä...
Tein tossa vaan ite funktionit merkkijonojen palotteluun, kun en ollut aijemmin tavannut sellasia, mutta sitten pälkähti päähän, että jospa sellaset onkin jo standardikirjastossa niin ne mitä ilmeisimmin on nopeempia.
Suosittelisin käyttämään stringejä merkkijonotaulukoiden sijaan. Tässäpä linkki mistä löytyy kaikki string-luokasta löytyvät funktiot: http://www.cppreference.com/cppstring.html
esim.
string tervehdys("Moro, kuis hurisee?"); string pala = tervehdys.substr(4); cout << pala << endl;
Kun otit puheeksi C++:n, niin string-luokan metodeilla pitäisi onnistua. Katso stringin metodit substr ja copy.
http://cppreference.com/cppstring.html
Edit: Pitäisi varmaan refreshata ennen viestin lähettämistä :)
Onko sillä sitten jotain merkitystä kumpaa käyttää? Siis tarkoitan, että onko string:t jotenkin parempia kuin char:t. Onko niiden ainoa huono puoli niiden (ehkä)hankalempi käsittely?
Öhöm, stringin on tarkoitus olla nimenomaan helpompi ja turvallisempi vaihtoehto char-taulukoille. Nopeuserojen ei pitäisi olla merkittäviä, jos C++-miesten propagandaan on uskominen.
Nopeuseroilla ei tosiaan ole juurikaan merkitystä, koska yleensä tekstinkäsittely ei ole ohjelman kriittisimpiä osia ajan kannalta.
No, kaipa täytyy sitten siirtyä niihin stringeihin, vaikka en nyt tuosta turvallisuudesta tiedä kun vääntää niille käsittelyfunktiot. Tosin noiden funktioiden nopeusero voi olla himan eri :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.