Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
johnsmith
Vana Pingviin
Vana Pingviin


Vanus: 50
Liitunud: 24.07.2006
Postitused: 714
Asukoht: Universum
Distributsioon: Ubuntu/Gentoo/FreeBSD
finland.gif
postituspostitatud: 10.12.2006, 20:05  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
estonia.gif
postituspostitatud: 10.12.2006, 21:01  postituse pealkiri:  (teema puudub)  

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 Smile


uniz
Vana Pingviin
Vana Pingviin


Vanus: 45
Liitunud: 18.05.2006
Postitused: 764

Distributsioon: ubuntucare
estonia.gif
postituspostitatud: 10.12.2006, 23:14  postituse pealkiri:  (teema puudub)  

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 Smile


Tegemist on c++ -iga..


HoHo
Vana Pingviin
Vana Pingviin


Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
estonia.gif
postituspostitatud: 11.12.2006, 00:28  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 45
Liitunud: 18.05.2006
Postitused: 764

Distributsioon: ubuntucare
estonia.gif
postituspostitatud: 11.12.2006, 01:33  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
estonia.gif
postituspostitatud: 11.12.2006, 01:52  postituse pealkiri:  (teema puudub)  

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 Very Happy


uniz
Vana Pingviin
Vana Pingviin


Vanus: 45
Liitunud: 18.05.2006
Postitused: 764

Distributsioon: ubuntucare
estonia.gif
postituspostitatud: 11.12.2006, 02:02  postituse pealkiri:  (teema puudub)  

Ma kasutan loomulikult 4.4BSDLite /FreeBSD'd- seal toksin sisse c++ -o blabla blabla.cpp
ja programm töötab-


HoHo
Vana Pingviin
Vana Pingviin


Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
estonia.gif
postituspostitatud: 11.12.2006, 02:08  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 37
Liitunud: 02.10.2005
Postitused: 745


blank.gif
postituspostitatud: 11.12.2006, 15:49  postituse pealkiri:  (teema puudub)  

kustutatud




Viimati muutis commodore 16.08.2015, 15:11; muudetud 1 kord
antik2
Vana Pingviin
Vana Pingviin



Liitunud: 09.10.2006
Postitused: 634

Distributsioon: Big Strong D...
blank.gif
postituspostitatud: 11.12.2006, 16:31  postituse pealkiri:  (teema puudub)  

commodore kirjutas:
Koopiad :S


Seda nimetatakse "hard link".
Kood:
man ln


HoHo
Vana Pingviin
Vana Pingviin


Vanus: 39
Liitunud: 08.07.2005
Postitused: 527
Asukoht: Tallinn/Paide
Distributsioon: Gentoo
estonia.gif
postituspostitatud: 11.12.2006, 17:56  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin



Liitunud: 09.10.2006
Postitused: 634

Distributsioon: Big Strong D...
blank.gif
postituspostitatud: 11.12.2006, 18:21  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 50
Liitunud: 24.07.2006
Postitused: 714
Asukoht: Universum
Distributsioon: Ubuntu/Gentoo/FreeBSD
finland.gif
postituspostitatud: 11.12.2006, 18:56  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 45
Liitunud: 18.05.2006
Postitused: 764

Distributsioon: ubuntucare
estonia.gif
postituspostitatud: 14.12.2006, 13:22  postituse pealkiri:  (teema puudub)  

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
Vana Pingviin


Vanus: 50
Liitunud: 24.07.2006
Postitused: 714
Asukoht: Universum
Distributsioon: Ubuntu/Gentoo/FreeBSD
finland.gif
postituspostitatud: 14.12.2006, 21:24  postituse pealkiri:  (teema puudub)  

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
Pingviini aktivist



Liitunud: 22.02.2007
Postitused: 140

Distributsioon: ubuntu server
canada.gif
postituspostitatud: 27.02.2007, 12:42  postituse pealkiri:  (teema puudub)  

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 Image

spott
Admin
Admin


Vanus: 43
Liitunud: 04.06.2005
Postitused: 8857

Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 27.02.2007, 13:04  postituse pealkiri:  (teema puudub)  

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
Pingviini aktivist



Liitunud: 22.02.2007
Postitused: 140

Distributsioon: ubuntu server
canada.gif
postituspostitatud: 28.02.2007, 15:34  postituse pealkiri:  (teema puudub)  

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
Pingviini aktivist


Vanus: 47
Liitunud: 31.10.2005
Postitused: 153

Distributsioon: Arch64
estonia.gif
postituspostitatud: 28.02.2007, 16:34  postituse pealkiri:  (teema puudub)  

Forge oma on c++, aga see puhas c. Neid c keele raamatuid on eestikeeles mitu. Mul on just c++ oma vaja.


bsdo

Pingviini aktivist
Pingviini aktivist



Liitunud: 22.02.2007
Postitused: 140

Distributsioon: ubuntu server
canada.gif
postituspostitatud: 28.02.2007, 18:37  postituse pealkiri:  (teema puudub)  

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/


Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group