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 | 2367 (1601) | krneki0001 |
| » | c++ vajaOddelek: Programiranje | 1014 (747) | 66speeder66 |
| » | [C++] Pridobivaje in brisanje le dolocenih znakovOddelek: Programiranje | 1474 (1268) | Gundolf |
| » | [C++] urejanje nizov po velikostiOddelek: Programiranje | 2464 (2245) | Matako |
| » | [Java] programiranje "praštevila"Oddelek: Programiranje | 2745 (2623) | blaz_ |