Pozdrav ljudi, novi sam u ovom svijetu pa me zanima kako da krenem, imate li neki online prirucnik ili nesto da udem u te vode?
EDIT: koji program preporucujute?
Pozdrav ljudi, novi sam u ovom svijetu pa me zanima kako da krenem, imate li neki online prirucnik ili nesto da udem u te vode?
EDIT: koji program preporucujute?
Pozdrav ljudi, novi sam u ovom svijetu pa me zanima kako da krenem, imate li neki online prirucnik ili nesto da udem u te vode?
Otvoris ovaj podforum, pogledas malo dalje od prve sticky teme, tocnije, odaberes cetvrtu sticky temu - Literatura za programiranje i naci ces pregrst linkova, knjiga, tutorijala i raznih informacija.
meni ne treba pravi kod vec me zanima nacin na koji se moze rijesiti zadatak. btw programiram u C-u ali to sad nije bitno. dakle zadatak:
imam strukturu podataka (npr. float brojeva). ja bih trebao napisati funkciju koja ce mi napraviti sve kombinacije (ne permutacije!) tih brojeva i spremiti ih. npr imam polje ili listu:
1,2,3,4,5,6,7,8. ako je argument u funkciji 2 onda program treba ispisati (1,2) (1,3) (1,4) ... (2,3) (2,4)... (3,4) itd. ako je argument 4 onda su kombinacije (1,2,3,4) (1,2,3,5) (1,2,3,6)...(1,2,4,5) (1,2,4,6) itd.
dakle korisnik upisuje argument na temelju kojeg se rade grupe.
ja sam razmisljao napraviti za svaki argument(prvih 5-6 brojeva) novu funkciju, ali to mi je previse posla pa me zanima da li je moguce napisati jednu funkciju koja ce izraditi kombinacije na opisani nacin.
i zanima me koja struktura podataka je najbolja (polje, lista, red,stablo,???...).
vremenska slozenost algoritma mi nije pretjerano bitna, ali bilo bi pozeljno da je manja od O(2^n).
Mislim da je rekurzija najjednostavnije rjesenje, ja sam napisao da ti ispisuje skupove, a ti mozes napisat da ih ubaci u neku strukturu.
I struktrura najbolja za sto?
#include <iostream>
#include <vector>
using namespace std;
vector<int> nums;
vector<int> sol;
void rec(int dep, vector<int> &sol) {
if (dep != 0)
for (int i = 0; i < nums.size(); i++) {
sol.push_back(nums[i]);
rec(dep-1, sol);
sol.pop_back();
}
else {
for (int i = 0; i < sol.size(); i++)
cout << sol[i] << " ";
cout << endl;
}
}
int main() {
nums.push_back(2);
nums.push_back(3);
nums.push_back(5);
nums.push_back(7);
nums.push_back(11);
rec(2, sol);
return 0;
}
kako napraviti "spin control" u win32 aplikaciji?
To se još naziva i "up down control"
#include <windows.h>
#include <commctrl.h>
#define IDC_EDIT 1000
#define IDC_UPDOWN 1001
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow)
{
HWND hwnd;
MSG messages;
WNDCLASS wc = {0};
wc.hInstance = hThisInstance;
wc.lpszClassName = "TestAppClass";
wc.lpfnWndProc = WindowProcedure;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
if (!RegisterClass(&wc))
return 1;
hwnd = CreateWindow("TestAppClass", "Test app",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,
200, 100,
NULL, NULL, hThisInstance, NULL);
while (GetMessage(&messages, NULL, 0, 0))
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return messages.wParam;
}
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND hEdit, hUpDown;
switch (message)
{
case WM_CREATE:
// kreiraj kontrolu čiju će vrijednost updown kontrola kontrolirati
hEdit = CreateWindowEx(WS_EX_CLIENTEDGE,
WC_EDIT, "0",
WS_CHILD | WS_VISIBLE | ES_NUMBER | ES_RIGHT,
20, 20, 100, 20,
hwnd, IDC_EDIT, GetModuleHandle(NULL), NULL);
// kreiraj updown kontrolu
hUpDown = CreateWindow(UPDOWN_CLASS, NULL,
WS_CHILD | WS_VISIBLE |
UDS_SETBUDDYINT | UDS_ALIGNRIGHT,
0, 0, 0, 0,
hwnd, IDC_UPDOWN, GetModuleHandle(NULL), NULL);
// postavi editbox kao 'buddy' od updown kontrole
SendMessage(hUpDown, UDM_SETBUDDY, hEdit, 0);
// Bez ovoga se updown kontrola ponaša obratno, strelica dolje
// povećava vrijednost, strelica gore smanjuje vrijednost
// vidi: http://blogs.msdn.com/b/oldnewthing/archive/2005/12/22/506725.aspx
SendMessage(hUpDown, UDM_SETRANGE, 0, MAKELPARAM(1000, 0));
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
Primjer by MS (ne baš intuitivan IMHO, ali nek se nađe)
Primjer by FoosYerDoos (iz kolekcije ostalih primjera)
meni ne treba pravi kod vec me zanima nacin na koji se moze rijesiti zadatak. btw programiram u C-u ali to sad nije bitno. dakle zadatak:
imam strukturu podataka (npr. float brojeva). ja bih trebao napisati funkciju koja ce mi napraviti sve kombinacije (ne permutacije!) tih brojeva i spremiti ih. npr imam polje ili listu:
1,2,3,4,5,6,7,8. ako je argument u funkciji 2 onda program treba ispisati (1,2) (1,3) (1,4) ... (2,3) (2,4)... (3,4) itd. ako je argument 4 onda su kombinacije (1,2,3,4) (1,2,3,5) (1,2,3,6)...(1,2,4,5) (1,2,4,6) itd.
dakle korisnik upisuje argument na temelju kojeg se rade grupe.
ja sam razmisljao napraviti za svaki argument(prvih 5-6 brojeva) novu funkciju, ali to mi je previse posla pa me zanima da li je moguce napisati jednu funkciju koja ce izraditi kombinacije na opisani nacin.
i zanima me koja struktura podataka je najbolja (polje, lista, red,stablo,???...).
vremenska slozenost algoritma mi nije pretjerano bitna, ali bilo bi pozeljno da je manja od O(2^n).
Mislim da je rekurzija najjednostavnije rjesenje, ja sam napisao da ti ispisuje skupove, a ti mozes napisat da ih ubaci u neku strukturu.
I struktrura najbolja za sto?
#include <iostream>
#include <vector>
using namespace std;
vector<int> nums;
vector<int> sol;
void rec(int dep, vector<int> &sol) {
if (dep != 0)
for (int i = 0; i < nums.size(); i++) {
sol.push_back(nums[i]);
rec(dep-1, sol);
sol.pop_back();
}
else {
for (int i = 0; i < sol.size(); i++)
cout << sol[i] << " ";
cout << endl;
}
}
int main() {
nums.push_back(2);
nums.push_back(3);
nums.push_back(5);
nums.push_back(7);
nums.push_back(11);
rec(2, sol);
return 0;
}
jel moze taj program u C-u ako nije problem? ne znam c++ pa su mi neki djelovi nejasni (npr vector???).
najbolja struktura za pohraniti pocetne brojeve (struktura koja se salje u funkciju). bilo bi pozeljno da je linked list jer u programu ne znam koliko ce tocno biti brojeva, ali i obicno polje je isto ok(lakse za napisati).
Koju preporucate stranicu kao jednu od boljih stranica za tutoriale o C++-u?
Zelim pocet uciti, pa da krenem negdje. I da, neka bude za vise manje totalne pocetnike, i ako nesto ne znam, podsjetit cu se preko toga...
Koju preporucate stranicu kao jednu od boljih stranica za tutoriale o C++-u?
Zelim pocet uciti, pa da krenem negdje. I da, neka bude za vise manje totalne pocetnike, i ako nesto ne znam, podsjetit cu se preko toga...
youtube je vise-manje ok (ako znas engleski). cak je i zanimljivije kad se uci uz video. :)
Koju preporucate stranicu kao jednu od boljih stranica za tutoriale o C++-u?
Zelim pocet uciti, pa da krenem negdje. I da, neka bude za vise manje totalne pocetnike, i ako nesto ne znam, podsjetit cu se preko toga...
youtube je vise-manje ok (ako znas engleski). cak je i zanimljivije kad se uci uz video. :)
Znam engleski, ima li nekog posebnog youtubera ili da pogledam videe od lika koji ima najvise lajkova/gledanja?
jel moze taj program u C-u ako nije problem? ne znam c++ pa su mi neki djelovi nejasni (npr vector???).
najbolja struktura za pohraniti pocetne brojeve (struktura koja se salje u funkciju). bilo bi pozeljno da je linked list jer u programu ne znam koliko ce tocno biti brojeva, ali i obicno polje je isto ok(lakse za napisati).
Za n brojeva i velicinu k=3, algoritam je ugrubo (pseudo kod):
for i=1 to n-2
for j=i+1 to n-1
for k=j+1 to n
printf i,j,k
Svaki novi indeks mora bit barem za 1 veci od prethodnog.
Ovo nije tesko poopciti za bilo koji k preko rekurzije. I uzet jedno polje da pamti prijasnje indekse (umjesto i,j,k gore) da znas koliko elemenata imas.
Za svaki indeks moras znati odakle pocinje i dokle ide. Sve skupa ti treba 4 argumenta, tj. 5 ako ne zelis globalnu varijablu za polje:
void combinations(int curIndex, int start, int k, int size)
Unutar funkcije ces imat petlju: for (int i=start; i<= size-k+1; i++).
Ako je curIndex==size, onda si gotov i samo ispisujes cijelo polje. Inace pozivas rekurzivno combinations(curIndex+1, i+1, k-1, size).
Iz main() funkcije pozivas sa comb(1, 1, k, n);
Nisam bas sve detalje objasnio, ali uz malo truda i razmisljanja bi trebalo bit dovoljno, reci ako zapnes...
Primjer by FoosYerDoos (iz kolekcije ostalih primjera)
Hvala Ti puno, spasio si me :)
Moji pokušaji traženja vjerojatno nisu bili uspješni jer sam cijelo vrijeme tražio spin control, umjesto updown koji je puno češći :)
Na toj stranici ima stvarno puno korisnih stvari, već sam si ubacio i razne druge stvari od tamo u program :D
BTW, jel postoji neki razlog zašto ljudi ne koriste enum{ }; na numeriranje konstanti vezanih za child windowe? kolko sam zamijetio obično koriste vrijednosti od 100 na dalje. jel postoji mogućnost da program vrati wParam izvan mojih definiranih?
Koju preporucate stranicu kao jednu od boljih stranica za tutoriale o C++-u?
Zelim pocet uciti, pa da krenem negdje. I da, neka bude za vise manje totalne pocetnike, i ako nesto ne znam, podsjetit cu se preko toga...
youtube je vise-manje ok (ako znas engleski). cak je i zanimljivije kad se uci uz video. :)
Znam engleski, ima li nekog posebnog youtubera ili da pogledam videe od lika koji ima najvise lajkova/gledanja?
za pocetnike bi trebali svi biti u redu. mozda pogledaj tko ima vise pozitivnih lajkova. za malo naprednije korisnike preporucujem mycodeschool https://www.youtube.com/user/mycodeschool . on i u teoriji i u programu dobro sve objasni(pointeri, adt, sortiranja itd). radi u c i c++.
jel moze taj program u C-u ako nije problem? ne znam c++ pa su mi neki djelovi nejasni (npr vector???).
najbolja struktura za pohraniti pocetne brojeve (struktura koja se salje u funkciju). bilo bi pozeljno da je linked list jer u programu ne znam koliko ce tocno biti brojeva, ali i obicno polje je isto ok(lakse za napisati).
Za n brojeva i velicinu k=3, algoritam je ugrubo (pseudo kod):
for i=1 to n-2
for j=i+1 to n-1
for k=j+1 to n
printf i,j,k
Svaki novi indeks mora bit barem za 1 veci od prethodnog.
Ovo nije tesko poopciti za bilo koji k preko rekurzije. I uzet jedno polje da pamti prijasnje indekse (umjesto i,j,k gore) da znas koliko elemenata imas.
Za svaki indeks moras znati odakle pocinje i dokle ide. Sve skupa ti treba 4 argumenta, tj. 5 ako ne zelis globalnu varijablu za polje:
void combinations(int curIndex, int start, int k, int size)
Unutar funkcije ces imat petlju: for (int i=start; i<= size-k+1; i++).
Ako je curIndex==size, onda si gotov i samo ispisujes cijelo polje. Inace pozivas rekurzivno combinations(curIndex+1, i+1, k-1, size).
Iz main() funkcije pozivas sa comb(1, 1, k, n);
Nisam bas sve detalje objasnio, ali uz malo truda i razmisljanja bi trebalo bit dovoljno, reci ako zapnes...
hvala, malo cu to prouciti i probati isprogramirati sad kad dođu praznici.
Kojih konstanti? Ako pričaš o konstanti koja se stavi na mjesto HMENU parametra CreateWindow funkcije i koja ti kasnije služi kao identifikator prozora/kontrole, onda je razlog zašto se koristi makro zapravo tehničke prirode. Naime u slučaju da koristiš resurse, resource kompajler razumije makroe, ali ne i enumerirane tipove (ili se barem samo windres tako ponaša), pa se navikneš koristiti makroe za to.
Ako te konstante nisu namijenjene za resource kompajler, onda možeš slobodno koristiti enumerirane tipove.
U ovom mom primjeru samo zamijeniš:
#define IDC_EDIT 1000
#define IDC_UPDOWN 1001
sa:
enum CtrlID {IDC_EDIT = 1000, IDC_UPDOWN};
jel moze taj program u C-u ako nije problem? ne znam c++ pa su mi neki djelovi nejasni (npr vector???).
najbolja struktura za pohraniti pocetne brojeve (struktura koja se salje u funkciju). bilo bi pozeljno da je linked list jer u programu ne znam koliko ce tocno biti brojeva, ali i obicno polje je isto ok(lakse za napisati).
Za n brojeva i velicinu k=3, algoritam je ugrubo (pseudo kod):
for i=1 to n-2
for j=i+1 to n-1
for k=j+1 to n
printf i,j,k
Svaki novi indeks mora bit barem za 1 veci od prethodnog.
Ovo nije tesko poopciti za bilo koji k preko rekurzije. I uzet jedno polje da pamti prijasnje indekse (umjesto i,j,k gore) da znas koliko elemenata imas.
Za svaki indeks moras znati odakle pocinje i dokle ide. Sve skupa ti treba 4 argumenta, tj. 5 ako ne zelis globalnu varijablu za polje:
void combinations(int curIndex, int start, int k, int size)
Unutar funkcije ces imat petlju: for (int i=start; i<= size-k+1; i++).
Ako je curIndex==size, onda si gotov i samo ispisujes cijelo polje. Inace pozivas rekurzivno combinations(curIndex+1, i+1, k-1, size).
Iz main() funkcije pozivas sa comb(1, 1, k, n);
Nisam bas sve detalje objasnio, ali uz malo truda i razmisljanja bi trebalo bit dovoljno, reci ako zapnes...
hvala, malo cu to prouciti i probati isprogramirati sad kad dođu praznici.
Tu se radi o kombinacijama bez ponavljanja, odnosno ako imamo n elemenata k različitih kombinacija imamo n! / (k! * (n-k)!), odnosno redosljed elemenata nije bitan , a u skupu (1,2,3,4) kombinacija (1,2) i (2,1) su iste kombinacije.
Možemo to riješiti i dvostrukom rekurzijom.
void kombinacije(int *niz, int *nizK, int n, int k, int indexN, int indexK)
{
if (indexK == k)
{
for (int i = 0; i < k; i++)
{
printf("%d ", nizK[i]);
}
printf("\n");
return;
}
if (indexN == n) return;
nizK[indexK] = niz[indexN];
kombinacije(niz, nizK, n, k, indexN + 1, indexK + 1);
kombinacije(niz, nizK, n, k, indexN+1, indexK);
}
a parametri funkcije imaju sljedeće značemje:
niz - skup od n elemenata predstavljen kao niz
nizK - skup k kombinacija od skupa od n elemenata predstavljen kao niz
n - broj elemenata skupa
k - broj kombinacija od n elemenata
indexN - tekući index niza n elemenata
indexK - tekući index niza od k elemenata
U main metodu dinamički alociramo niz od n elemenata i niz od k kombinacija, pa pozovemo funkciju
kombinacije(niz, nizK, n, k, 0, 0)
Ovako imam jedan problem..
Novi sam korisnik (izvinjavam se ako sam fulao nesto).. :)
Dobio sam neke projektne zadatke, jedan od njih je sa datotekama, nisam ih bas shvatio dobro, tj.. skroz slabo.. evo zadatka:
"" Data je datoteka "ulaz.txt" u koju su upisani brojevi tipa long.
a) Napisati funkciju koja sve brojeve u datoteci zamjenjuje njihovom apsolutnom vrijednošću.
b) Napisati funkciju koja će brojeve veće od 100 iz datoteke "ulaz.txt" prepisati u datoteku "vece100.txt" , poredane po rastućem redoslijedu ""
Eh sad.. radi se o sljedećem.. drug mi je malo pomogao, uradili smo djelimično.. ali sad kad pokrenem taj zadatak pod a) on ne radi, otvorim taj .txt fajl u kojem bi trebali bit brojevi (njihova apsolutna vrijednost, ali bude prazan), a pod b) ne sortira ih u novoj datoteci, već ih ispiše sve jedan ispod drugog..
Evo izgled tih zadataka:
Pod a) http://i.imgur.com/V9ixfrF.png
Pod b) http://img13.imageshack.us/img13/2968/h3if.png
Pa ako ima neko ko je voljan pomoći mi, i zna uradit ova 2 zadatka, bio bih zahvalan.. nzm kako se mogu odužit, ako bude sve radilo dogovoricemo se, ugl.. bitno je.. :D
Kako odrediti koliko paragrafa ima u nekom txt fajlu?Ako u notepadu napravim paragrafe,gets učita samo prvi red,a ostale redove zanemari i kada tražim \n nikada ga ne nađe.Hvala.
Greska je u tome sto je to range-based for petlja koja je u C++-u definirana tek u novijem C++11 (C++0x) standardu. Kod tebe je ocito da kompajliras s kompajlerom koji kompajlira po starijem standardu u kojem takvih for petlji nije bilo. Ovisno o tome koji kompajler imas i koju verziju kompajlera, dodas opciju koja mu kaze da kompajlira po novom standardu.
Ja npr. imam gcc 4.6.3 tako da moram ukljuciti podrsku za C++0x da bi mogao koristiti range-based for petlje - kompajliranje bih tada vrsio ovako (u terminalu):
gcc -Wall -std=c++0x main.c -o mojprogramPrimjeti boldano, s tim sam rekao kompajleru da zelim koristiti C++0x standard (s kojim onda gcc 4.6 kojeg imam podrzava takve for petlje).
Zanima me zašto ovaj program ne radi ako maknem cin.ignore(1,'\n') liniju koda, što mi to predstavlja?
int main()
{
char imedatoteke[80]; char buffer[255];
cout << "Ime datoteka: "; cin >> imedatoteke; cin.ignore(1,'\n');
ofstream izlaz(imedatoteke);
// formiraj izlaznu datoteku
cout << "Otkucajte liniju teksta: ";
cin.getline(buffer,255); // dobavi tekst s tipkovnice
izlaz << buffer << "\n"; // i upiši u datoteku
izlaz.close(); // zatvori datoteku
ifstream ulaz(imedatoteke); // otvori za
č
itanje
cout << "\nU datoteci je upisan tekst: \n";
// Dobavi i ispiši sadržaj datoteke na standardni izlaz
char ch;
while (ulaz.get(ch)) cout << ch;
cout << "\n***Kraj***\n";
return 0;
}
Problem je u ulaznom streamu i nedoslijednosti funkcija koje čitaju iz njega. Odnosno kada kombiniraš funkcije koje se različito ponašaju u radu sa streamom.
Kada stisneš tipku enter, u stream se doda tzv. newline znak ('\n'). Stream nije ništa drugo nego niz znakova. Funkcije iz njega čitaju znakove (ili nizove znakova) znak po znak koristeći newline kao oznaku završetka jedne linije teksta, i istovremeno iz streama uklanjaju svaki pročitani znak. Tu počinje zabavni dio. Neke funkcije dođu do newline znaka, pročitaju i njega, uklone ga iz streama i završe sa radom, dok druge dođu do njega i odmah završe sa radom (ne uklone ga).
'cin' ne uklanja newline iz streama i kada nakon njega koristiš 'getline' koji pokušava pročitati jednu liniju teksta (koja očigledno završava sa newline znakom) dobiješ jednu praznu liniju.
Rješenje je nakon poziva na 'cin' ručno ukloniti newline iz streama koji je cin ostavio unutra. I to postižeš upravo sa cin.ignore.
Postoje slične zavrzlame i u C-u samo što tamo nema standardnog rješenja za taj problem pa se često pribjegava ili korištenju getchar petlje ili korištenju fflush funkcije na ulaznom streamu (što je nedefinirano i neportabilno).
Samo da se nadovezem na rusta, da opisem postupak izvrsavanja, dakle kad se dode do:
cin >> imeDatoteke;ceka se sto ce korisnik upisati.
Neka korisnik npr. upise: mojadat.txt i pritisne enter.
U streamu ce se nalaziti:
mojadat.txt\n
Tada
cin >> imeDatotekeuzima znak po znak iz streama sve dok ne dode do razmaka. U racunarskoj znanosti to je bilo koji znak koji predstavlja bilo horizontalni, bilo vertikalni prazni prostor, dakle ukljucuje tabulare, novi redak, mali razmak (od jednog znaka) i sl.
Kao sto je rust vec rekao, neke funkcije/metode uklone \n, a neke ne. Cin ga ne uklanja, stoga nakon sto se izvrsi cin >> imeDatoteke, u streamu se sada nalazi:
\nOvaj tekst prije cin je pojeo i pospremio u polje imeDatoteke.
Tada dolazimo do:
cin.ignore(1, '\n');Prvi argument je broj znakova koje vadimo iz streama (i odbacujemo). Drugi argument je delimiter, vadimo znakove iz streama dok ne naletimo na njega (ili na EOF, ako nikad ne dodemo do delimitera), kad naletimo prestajemo vaditi i odbacivati znakove iz streama. Tako da ta linija zapravo vadi i odbacuje iz streama jedan znak, a delimiter je upravo taj jedan znak, tj. \n.
Nakon toga mozes dalje normalno koristiti ostale cin funkcije/metode.
Ovo sto je rust napomenuo za getchar petlju u C-u, ako kome zatreba, to izgleda ovako:
while((c = getchar()) != '\n' && c != EOF);Naravno, char c mora biti definiran prije.
Malen offtopic, ali za vas koji koristite Code::Blocks, verzija 13.12 je dostupna za download. Dosta poboljšanja, pogotovo u GDB podršci i code completion parseru.
Naravno, pazite koju verziju skidate (sa kompajlerom ili bez njega) da ne bi opet bilo "code::blocks mi neće kompajlirati program" problema. :P
da li mogu pomoću break-a jednostavno "ugasiti" rekurziju nakon što nađem rješenje?
Ne. Break se koristi u petljama a ne u rekurzijama.
da li mogu pomoću break-a jednostavno "ugasiti" rekurziju nakon što nađem rješenje?
Ne, break se koristi samo kod petlji (while, for...). Jednostavno vrati sto vratiti moras, ne znam kakav ti je kod, ali npr.:
int rek_funkcija(int a)
{
if (a > 10) {
return a;
}
a += rek_funkcija(a + 1);
return a;
}
imam još jedno pitanje. nazvao dvije matrice (vector<vector<int> >) "left" i "right" i complajler mi je vraćao grešku. s obzirom da to nisu ključne riječi u čemu je problem? biblioteke koje sam koristio su cstdlib, iostream, string, vector. da li je možda u njima postoji neka naredba left i right pa zato ne mogu kompajliratit il je nešto treće. inače kod je 100% ispravan. kad sam promjenio naziv tih matrica, program je radio skroz ok.
EDIT: proguglo sam malo i našao da su to neke naradbe iz iostream-a
imam još jedno pitanje. nazvao dvije matrice (vector<vector<int> >) "left" i "right" i complajler mi je vraćao grešku. s obzirom da to nisu ključne riječi u čemu je problem? biblioteke koje sam koristio su cstdlib, iostream, string, vector. da li je možda u njima postoji neka naredba left i right pa zato ne mogu kompajliratit il je nešto treće. inače kod je 100% ispravan. kad sam promjenio naziv tih matrica, program je radio skroz ok.
EDIT: proguglo sam malo i našao da imaju su to neke naradbe iz iostream-a
Napiši koju ti grešku kompajler daje.
EDIT: Tek sam sad vidio da si našao rješenje problema.
Postoji li neki pametan način za čitanje polja charova kao datoteku, liniju po liniju.
Sada trenutno koristim sscanf i onda čitam %d, %f, ... koristim i %[^\n] za čitanje stringova, cijelo polje od više redaka čitam u jednom sscanfu. Ali što kad mi se u retku ne nalazi ništa a tamo očekujem int? onda mi počne nešto dalje čitati u krivu varijablu, mogo bi napraviti funkciju koja vraća red po red u polja i postavlja pointer tamo gdje je stala s čitam (slično kad fscanf), ali mi se neda ako ima nešto pametnije.
fgets čita cijeli redak u char polje.
fgets čita samo iz datoteke, ja bi čitao iz polja charova. Odnosno čitam neke fileove s servera i onda ih čitam iz polja, ne želim stvarati nikakve tmp datoteke.