Forum » Programiranje » [c++] pomoč pri metodah
[c++] pomoč pri metodah
cosa nostra ::
Delam mettode za čitanje in vpis v datoteko, izpis enega in več elementov na zaslon, morem še sortiranje,brisanje itd..
Mi lahko kdo popravi napake da nebo Erorov. hvala...
Mi lahko kdo popravi napake da nebo Erorov. hvala...
// Naloga - Avto.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> // vhodno-izhodni ukazi #include <stdlib.h> //standardni ukazi #include <ctime> #include <string> // za la�je delo z nizi, veljavno le v C++ in ne v C# #include <fstream >//knji�nica za delo z datotekami using namespace std; // uporaba imenskega prostora ni treba pisati std::ukaz class Avto { string znamka; //prva lastnost short letnik; //druga lastonst public: void citaj_dat(Avto a1[], string dat, short &x, short n); void vpis_dat(Avto a2[], string dat1, short b); void izpis_zaslon(short i); void izpis_en_elemnet(short ii); }; short n=100; Avto a[n]; void vpis_dat(Avto a2[], string dat1, short i) { ofstream dat1; dat1.open("dat.txt"); for (short i=1;i<= 5;i=1+i) { cout<<"Podaj mi "<<i<<". podatek."<<endl; getline(cin, dat1); } dat1.close(); } void Avto::citaj_dat(Avto a1[], string datoteka, short &x, short n); { ifstrem datoteka; datoteka.open("dat.txt", ios::in); if(datoteka.open()) { while(datoteka.eof()) { getline(cin, Avto a1[]); cout<<"Podatki so :"<<Avto a1[]<<endl; } datoteka.close(); }else cout<<" Nekaj je narobe "<<endl; }; void Avto::izpis_zaslon(short i) { for(short i=0; i<15; i++) { Avto a1[i].izpis_zaslon cout<<Avto a1[]; i=i+1; } } void Avto::izpis_en_elemnet(short ii) { cout<<"Podatki"<<ii<<"avta so "<<znamka<< "in letnik"<<letnik; } int _tmain() { system("pause"); return 0; }
LightBit ::
Sicen se ne spoznam ravno na C++, ampak kot C programer bi rekel, da je tole čisto narobe.
Zakaj class uporabljaš kot strukturo?
Zakaj class uporabljaš kot strukturo?
mallard ::
Velikost polja mora bit konstanta, ki jo prevajalnik lahko določi med prevajanjem. Constant expression, z drugo besedo.
Imaš dve podpičji kjer nimata kaj iskat:
V funkciji vpis_dat si deklariral lokalno spremenljivko dat1 tipa ofstream, ki skrije parameter z istim imenom, funkcija getline, ki vzame ofstream, pa ne obstaja
Tipkarska napaka:
Pa izpis_en_elemnet si črkoval narobe. To sicer ni napaka, ker se deklaracija in definicija ujemata, ne izgleda pa ravno v redu, ne?
Tole je kar malo "wtf", mešaš sintakso deklaracij in izrazov:
Pa najbrž bi se še kaj našlo.
EDIT:
Namesto
lahko rečeš:
const short n = 100; // <--- const const const const const! Avto a[n]; // to tudi ne bi šlo, čeprav je n deklariran const, ker bo vrednost znana šele // ko se program zažene //const int n = rand(); //int arr[n];
Imaš dve podpičji kjer nimata kaj iskat:
void Avto::citaj_dat(Avto a1[], string datoteka, short &x, short n); // <--- TUKAJ { // ... }; // <---- TUKAJ
V funkciji vpis_dat si deklariral lokalno spremenljivko dat1 tipa ofstream, ki skrije parameter z istim imenom, funkcija getline, ki vzame ofstream, pa ne obstaja
void vpis_dat(Avto a2[], string dat1, short i) { ofstream dat1; // skriva parameter dat1 dat1.open("dat.txt"); for (short i=1;i<= 5;i=1+i) { cout<<"Podaj mi "<<i<<". podatek."<<endl; getline(cin, dat1); // <---- error, dat1 je ofstream } dat1.close(); }
Tipkarska napaka:
ifstrem datoteka;
Pa izpis_en_elemnet si črkoval narobe. To sicer ni napaka, ker se deklaracija in definicija ujemata, ne izgleda pa ravno v redu, ne?
Tole je kar malo "wtf", mešaš sintakso deklaracij in izrazov:
Avto a1[i].izpis_zaslon cout<<Avto a1[];
Pa najbrž bi se še kaj našlo.
EDIT:
Namesto
i = i+1; // I'M A NOOB! :)
lahko rečeš:
++i;
Zgodovina sprememb…
- spremenilo: mallard ()
BlackDeath ::
Nauči se brat napake, ki se ti izpišejo, ker ni tako težko, da ne bi sam mogel razbrati kaj je problem. Naslednjič vsaj poskusi preden obupaš po 5 minutah. Nočem bit nesramen ampak IČR imaš ta semester, ne? No, tam dobiš navodila kaj moraš napravit v naslednjih dveh urah. Brez interneta. Nihče ti ne bo pomagal.
V metodi izpis_dat si napravil isti kiks. 'i' daš kot parameter metode, čeprav tega sploh ne potrebuješ, potem ga pa še enkrat deklariraš v for zanki in prevajalnik ti bo javil napako.
void Avto::izpis_zaslon<strong>(short i)</strong> { for(<strong>short i=0</strong>; i<15; i++) { Avto a1[i].izpis_zaslon cout<<Avto a1[]; i=i+1; } }
V metodi izpis_dat si napravil isti kiks. 'i' daš kot parameter metode, čeprav tega sploh ne potrebuješ, potem ga pa še enkrat deklariraš v for zanki in prevajalnik ti bo javil napako.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | DIJKSTROV_ALGORITEMOddelek: Programiranje | 2206 (1440) | krneki0001 |
» | c++ vajaOddelek: Programiranje | 885 (618) | 66speeder66 |
» | [C++] Pridobivaje in brisanje le dolocenih znakovOddelek: Programiranje | 1329 (1123) | Gundolf |
» | [C++] urejanje nizov po velikostiOddelek: Programiranje | 2271 (2052) | Matako |
» | [Java] programiranje "praštevila"Oddelek: Programiranje | 2532 (2410) | blaz_ |