Autor |
Sõnum |
johnsmith
Vana Pingviin
Vanus: 50
Liitunud: 24.07.2006
Postitused: 714
Asukoht: Universum
Distributsioon: Ubuntu/Gentoo/FreeBSD
|
|
Hoho, minu mäletamist mööda cin lõpetab lugemise peale tühja märki.
Antud juhul sinu koodis salvestatakse faili ainult eesnimi.....
Getline salvestab kuni parameetrina antud puhvrit on järgi.
Kasutaja võib siis sisestada oma ees, perekonna ja isanime.
Või mis ?
|
|
|
|
_________________ "Thinking is the hardest work there is, which is probably the reason why so few engage in it" - Henry Ford
|
|
|
|
HoHo
Vana Pingviin
Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
|
|
Proovisin enda programmi, sisendeiks "kalle" ja "energia" ilma jutumärkideta. Väljundis kenasti nood kaks sõna, peale nime ja aadressi newlined.
Proovisin originaali samade parameetritega, tulemus täpselt sama.
Miskipärast tundub GCC nullib staatilised puhvrid ära. Samuti paneb getline ka \0'i tollesse puhvrisse. Tundub et ajasin get'i ja getline'i tööpõhimõtted sassi. Vabandust segaduse tekitamise pärast
|
|
|
|
|
|
|
|
uniz
Vana Pingviin
Vanus: 45
Liitunud: 18.05.2006
Postitused: 764
Distributsioon: ubuntucare
|
|
HoHo kirjutas: | Proovisin enda programmi, sisendeiks "kalle" ja "energia" ilma jutumärkideta. Väljundis kenasti nood kaks sõna, peale nime ja aadressi newlined.
Proovisin originaali samade parameetritega, tulemus täpselt sama.
Miskipärast tundub GCC nullib staatilised puhvrid ära. Samuti paneb getline ka \0'i tollesse puhvrisse. Tundub et ajasin get'i ja getline'i tööpõhimõtted sassi. Vabandust segaduse tekitamise pärast |
Tegemist on c++ -iga..
|
|
|
|
|
|
|
|
HoHo
Vana Pingviin
Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
|
|
Sa ikka tead et GCC on Gnu Compiler Collection? g++ on sinna kuuluv c++ kompilaator. Ma pole harjunud üht väikest osa suurest tervikust eraldi välja toomisega kuna see nagunii otseselt asjasse ei puutu.
Erinevus eri keelte vahel on ainult frontendis mis tõlgib koodi mingisse vaheformaati mis antakse edasi "päris" kompilaatorile mis siis igasugu optimisatisoone ja muid trikke tegema hakkab.
|
|
|
|
|
|
|
|
uniz
Vana Pingviin
Vanus: 45
Liitunud: 18.05.2006
Postitused: 764
Distributsioon: ubuntucare
|
|
HoHo kirjutas: | Sa ikka tead et GCC on Gnu Compiler Collection? g++ on sinna kuuluv c++ kompilaator. Ma pole harjunud üht väikest osa suurest tervikust eraldi välja toomisega kuna see nagunii otseselt asjasse ei puutu.
Erinevus eri keelte vahel on ainult frontendis mis tõlgib koodi mingisse vaheformaati mis antakse edasi "päris" kompilaatorile mis siis igasugu optimisatisoone ja muid trikke tegema hakkab. |
hoho- ma sain oma scripti küll tööle, kui tegin niimoodi:
c++ -o programm programm.cpp
|
|
|
|
|
|
|
|
HoHo
Vana Pingviin
Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
|
|
uniz kirjutas: | HoHo kirjutas: | Sa ikka tead et GCC on Gnu Compiler Collection? g++ on sinna kuuluv c++ kompilaator. Ma pole harjunud üht väikest osa suurest tervikust eraldi välja toomisega kuna see nagunii otseselt asjasse ei puutu.
Erinevus eri keelte vahel on ainult frontendis mis tõlgib koodi mingisse vaheformaati mis antakse edasi "päris" kompilaatorile mis siis igasugu optimisatisoone ja muid trikke tegema hakkab. |
hoho- ma sain oma scripti küll tööle, kui tegin niimoodi:
c++ -o programm programm.cpp | pigem ikka g++ :-P
Kui oli tõesti c++ siis on tegu ühe pagana imeliku distroga mis kipub programmide default nimetusi muutma
[edit]
sry, siiski tundub et eksisteerib c++ nimeline symlink. Samas ma pole veel kuulnud et keegi või miski seda kasutaks, täna oli esimene kord kui seda üldse nägin
|
|
|
|
|
|
|
|
uniz
Vana Pingviin
Vanus: 45
Liitunud: 18.05.2006
Postitused: 764
Distributsioon: ubuntucare
|
|
Ma kasutan loomulikult 4.4BSDLite /FreeBSD'd- seal toksin sisse c++ -o blabla blabla.cpp
ja programm töötab-
|
|
|
|
|
|
|
|
HoHo
Vana Pingviin
Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
|
|
natuke uurides selgus et g++ ja c++ nimelised asjad on hoopis koopiad ühest ja samast binaarist. Tegelikult oli neid binaare kokku terve hunnik:
Kood: | -rwxr-xr-x 1 root root 9020 Nov 19 18:51 c++
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 cc
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 cpp
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 g++
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 g++32
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 gcc
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 gcc32
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 i686-pc-linux-gnu-c++
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 i686-pc-linux-gnu-cpp
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 i686-pc-linux-gnu-g++
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 i686-pc-linux-gnu-g++32
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 i686-pc-linux-gnu-gcc
-rwxr-xr-x 1 root root 9020 Nov 19 18:51 i686-pc-linux-gnu-gcc32
|
|
|
|
|
|
|
|
|
commodore
Vana Pingviin
Vanus: 37
Liitunud: 02.10.2005
Postitused: 745
|
|
Viimati muutis commodore 16.08.2015, 15:11; muudetud 1 kord
|
|
|
|
antik2
Vana Pingviin
Liitunud: 09.10.2006
Postitused: 634
Distributsioon: Big Strong D...
|
|
commodore kirjutas: | Koopiad :S |
Seda nimetatakse "hard link".
|
|
|
|
|
|
|
|
HoHo
Vana Pingviin
Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
|
|
commodore kirjutas: | Koopiad :S | Huvi pärast küsin et mis olukord BSD all on? Kas seal on sama palju hardlinke? Miskipärast eeldan et on.
Anyway, edaspidi soovitan hakata kasutama g++ kuna see on vähemalt enam-vähem standartne, kui GCC'd saab standardiks pidada. Kõik senised kompileeritud programmid on kasutanud kas g++'i või siis mõnd i686-pc-linux-gnu-* asja, ei ükski pole kasutanud c++'i.
|
|
|
|
|
|
|
|
antik2
Vana Pingviin
Liitunud: 09.10.2006
Postitused: 634
Distributsioon: Big Strong D...
|
|
HoHo kirjutas: | commodore kirjutas: | Koopiad :S |
Huvi pärast küsin et mis olukord BSD all on? Kas seal on sama palju hardlinke? Miskipärast eeldan et on.
Anyway, edaspidi soovitan hakata kasutama g++ kuna see on vähemalt enam-vähem standartne, kui GCC'd saab standardiks pidada. Kõik senised kompileeritud programmid on kasutanud kas g++'i või siis mõnd i686-pc-linux-gnu-* asja, ei ükski pole kasutanud c++'i. |
Kood: | # gcc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.4.4 [FreeBSD] 20050518
# c++ -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.4.4 [FreeBSD] 20050518
# cc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.4.4 [FreeBSD] 20050518 |
|
|
|
|
|
|
|
|
johnsmith
Vana Pingviin
Vanus: 50
Liitunud: 24.07.2006
Postitused: 714
Asukoht: Universum
Distributsioon: Ubuntu/Gentoo/FreeBSD
|
|
Tegemist on ikka soft linkidega, nii öelda sümboolsete linkidega.
Seal on suur vahe, hard link on sama faili teine nimi ja linuxi kernel peab andmebaasi kui palju hard linke osutab ühte ja sama faili ja alles kui viimane hard link on kustutatud kustutab kernel ka faili.
Sümboolne link seevastu on eraldi fail mis osutab teist faili ja ta võib osutada ka faili millele pole enam hard linke ja mida me ei saa enam kasutada.
Kood: | rainer@1[~]$ ls -lia /etc/alternatives/c++
1136257 lrwxrwxrwx 1 root root 12 2006-05-11 06:56 /etc/alternatives/c++ -> /usr/bin/g++ |
nagu näha on osutab c++ -> g++
Kood: | rainer@1[~]$ ls -lia /usr/bin/g++
116820 lrwxrwxrwx 1 root root 7 2006-05-11 06:57 /usr/bin/g++ |
vaadake seda numbrit selle faili alguses "116820" see on faili inode mis sisaldab infot faili kohta ja hard lingi puhul on need numbrid samad.
|
|
|
|
_________________ "Thinking is the hardest work there is, which is probably the reason why so few engage in it" - Henry Ford
|
|
|
|
uniz
Vana Pingviin
Vanus: 45
Liitunud: 18.05.2006
Postitused: 764
Distributsioon: ubuntucare
|
|
Kood: |
//faili salvestus koos veateatega..
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char buffer[81];
char faili_nimi[81];
cout << "Salvestava faili nimi: ";
cin.getline(faili_nimi, 81);
ofstream out_file(faili_nimi);
if (!out_file)
{
cerr << endl;
cerr << "Viga: Faili ei saa avada." << endl;
cerr << "Programm lopetatud" << endl;
exit(1);
}
cout << endl;
cout << "Sisesta oma nimi: ";
cin.getline(buffer, 81);
out_file << buffer << endl;
cout << "Sisesta oma perekonnanimi: ";
cin.getline(buffer, 81);
out_file << buffer << endl;
cout << "Sisesta oma aadress: ";
cin.getline(buffer, 81);
out_file << buffer << endl;
out_file.close();
cout << endl;
cout << "Programm ilusasti lopetatud." << endl;
return 0;
}
|
g++ siis..
Tegin siit edasi nüüd, et ise saab panna failile nime ning sinna andmed panna ja salvestada( nt. sinufail.txt )- kusjuures avastasin, et niimoodi võib puhverdada terve pika rea üksteise alla..
|
|
|
|
|
|
|
|
johnsmith
Vana Pingviin
Vanus: 50
Liitunud: 24.07.2006
Postitused: 714
Asukoht: Universum
Distributsioon: Ubuntu/Gentoo/FreeBSD
|
|
Kood: | ofstream out_file(faili_nimi, ios::out | ios::app); |
Niimoodi saab avada faili ja kirjutada sinna lõppu, et eelmine teave jääks ka alles.
Nüüd sa pead andmed failist välja ka lugema, võib olla programm peaks küsima kas tahad lugeda või kirjutada.
|
|
|
|
_________________ "Thinking is the hardest work there is, which is probably the reason why so few engage in it" - Henry Ford
|
|
|
|
bsdo
Pingviini aktivist
Liitunud: 22.02.2007
Postitused: 140
Distributsioon: ubuntu server
|
|
Kes tahab tõsiselt c++ keelt õppida, siis on näiteks selline raamat:
Teodor Luczkowski "Baasteadmised programmeerimiskeelest c++"
Näited ja seletused on täiesti arusaadavad ja põhjalikud.
|
|
|
|
_________________ Ubuntust
|
|
|
|
spott
Admin
Vanus: 43
Liitunud: 04.06.2005
Postitused: 8857
Distributsioon: Ubuntu
|
|
C++ õppimise kohta nüüd ka HowtoForges õpetused olemas.
|
|
|
|
_________________ Tellige endale sünnipäevaks, sõbrapäevaks või muuks tähtpäevaks kingitus: Kingitused internetist - NetiKink.eu
|
|
|
|
bsdo
Pingviini aktivist
Liitunud: 22.02.2007
Postitused: 140
Distributsioon: ubuntu server
|
|
Ma räägin ttü kirjastusest s.t eesti keeles- väärt raamat-) mingi forge pakub hello wordi, kuid Teodor pakub väärt õpet.
Üks näide kohe alguses:
Tegin kolm rida natuke ümber, et lisasin ka intressi sisestamise võimalusi, mis teodoril oli programmis kohe float intress=0.023
.. Minu versioon võimaldab panna kohe oma intressi:
float intress;
ja kaks uut rida:
printf("Milline on intress>");
scanf("%f",&intress);
Tulemus:
Kood: |
#include <stdio.h>
#include <conio.h>
int main(void)
{
int kuud, i;
double summa;
float intress;
printf("Mitu kuud hoiustad>");
scanf("%d",&kuud);
printf("Milline on intress>");
scanf("%f",&intress);
printf("Millise summa hoiustad>");
scanf("%lf",&summa);
for(i=1;i<=kuud;i++)
{
summa+=(summa*intress/12);
printf("%2d %10.2lf\n",i,summa);
if(!(i%12))printf("Aasta \n");
}
printf("Vajuta suvalisele klahvile...");
getch();
return 0;
}
|
Lisaks on seal õpetusi ja näiteid tekstitöötlusest kuni kenoni välja..
|
|
|
|
|
|
|
|
Hardi
Pingviini aktivist
Vanus: 47
Liitunud: 31.10.2005
Postitused: 153
Distributsioon: Arch64
|
|
Forge oma on c++, aga see puhas c. Neid c keele raamatuid on eestikeeles mitu. Mul on just c++ oma vaja.
|
|
|
|
|
|
|
|
bsdo
Pingviini aktivist
Liitunud: 22.02.2007
Postitused: 140
Distributsioon: ubuntu server
|
|
Hardi kirjutas: | Forge oma on c++, aga see puhas c. Neid c keele raamatuid on eestikeeles mitu. Mul on just c++ oma vaja. |
Mina ei arva forgest midagi. Kõigepealt soovitan Teodori läbi lugeda ja lõpuks avastate, et ennem tuleks see c selgeks teha, mida Teodor Luczkowski kirjutab ning alles siis avastate, et c++ iseenesest on jube kerge..
Põhifunktsioonid on täiesti selgelt piiritletud. Ja õpiku lõpu poole õpetab ka natuke c++
Ning seejärel soovitan, mis ületab teie forge jama tunduvalt:
http://www.mindviewinc.com/
|
|
|
|
|
|
|
|
|