3. leht 4-st
Postitatud: 10.12.2006, 20:05
Postitas johnsmith
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 ?
Postitatud: 10.12.2006, 21:01
Postitas HoHo
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

Postitatud: 10.12.2006, 23:14
Postitas uniz
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..
Postitatud: 11.12.2006, 00:28
Postitas HoHo
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.
Postitatud: 11.12.2006, 01:33
Postitas uniz
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
Postitatud: 11.12.2006, 01:52
Postitas HoHo
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++
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

Postitatud: 11.12.2006, 02:02
Postitas uniz
Ma kasutan loomulikult 4.4BSDLite /FreeBSD'd- seal toksin sisse c++ -o blabla blabla.cpp
ja programm töötab-
Postitatud: 11.12.2006, 02:08
Postitas HoHo
natuke uurides selgus et g++ ja c++ nimelised asjad on hoopis koopiad ühest ja samast binaarist. Tegelikult oli neid binaare kokku terve hunnik:
Kood: Vali kõik
-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
Postitatud: 11.12.2006, 15:49
Postitas commodore
kustutatud
Postitatud: 11.12.2006, 16:31
Postitas antik2
commodore kirjutas:Koopiad :S
Seda nimetatakse "hard link".
Postitatud: 11.12.2006, 17:56
Postitas HoHo
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.
Postitatud: 11.12.2006, 18:21
Postitas antik2
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: Vali kõik
# 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
Postitatud: 11.12.2006, 18:56
Postitas johnsmith
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: Vali kõik
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: Vali kõik
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.
Postitatud: 14.12.2006, 13:22
Postitas uniz
Kood: Vali kõik
//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..
Postitatud: 14.12.2006, 21:24
Postitas johnsmith
Kood: Vali kõik
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.
Postitatud: 27.02.2007, 12:42
Postitas bsdo
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.
Postitatud: 27.02.2007, 13:04
Postitas spott
C++ õppimise kohta nüüd ka HowtoForges õpetused olemas.
Postitatud: 28.02.2007, 15:34
Postitas bsdo
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: Vali kõik
#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..
Postitatud: 28.02.2007, 16:34
Postitas Hardi
Forge oma on c++, aga see puhas c. Neid c keele raamatuid on eestikeeles mitu. Mul on just c++ oma vaja.
Postitatud: 28.02.2007, 18:37
Postitas bsdo
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/