Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- GoodSpeed: 3I/Atlas: Üstökös vagy idegen civilizáció űrhajója?
- eBay-es kütyük kis pénzért
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Gurulunk, WAZE?!
- Trewerr: Analóg-digitális jelátalakítás (zenefájlok leegyszerűsítésével magyarázva)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Meggyi001: A kérdés...
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
-
LOGOUT

Új hozzászólás Aktív témák
-
bdav
őstag
hát éppen van lehetőség egy nyitott filestreamban hogy mozgasd az aktuális írási pozíciót (seegk és seekp) de nem ismerem ezt a lehetőséget jól, most találtam a googleval. nahh ha ez megvan és ismered a fájl sorainak hosszát, akkor sztem el tudsz navigálni a sorzáró \n (vagy \n\r) elé és oda beírhatsz, így kvázi új oszlopod lesz. (nézz utána ennek még, próbálgasd előtte)
de nekem szimpatikusabb lenne tömbben gyűjteni a kiírandó adatokat és csak a szim. végén létrehozni a fájlt
mod most látom h. jo lenne tömbbel is csak az implementácio hiányzik. nahh akkor:
Legyen egy tömböd:
[code] tomb[sorok][oszlopok] [/code]
ezt fel tudod tölteni két ciklussal:
[code]
for(oszlopok=0; oszlopok<maxoszlopok; oszlopok++) //ez léptet a köv. oszlopra
for(sorok=0; sorok<maxsorok; sorok++) // ez egy oszlop adatait szedi össze
tomb[sorok][oszlopok]= //ide elvégzed a müveletet
[/code]
kiíráskor az kell hogy egy sor kiírásakor minden oszlop első eleme szerepeljen
[code]
for(sorok=0; sorok<maxsorok; sorok++)
{
for(oszlopok=0; oszlopok<maxoszlopok; oszlopok++)
file<<tomb[sorok][oszlopok]<<'\t'; //kiirkálod az oszlopok első elemeit
file<<'\n'; //majd sor vége, köv. körben jönnek a 2. elemek.
}
[/code]
a lényeg h. a két tömbbejárásnál más legyen a tömbindexeken végigfutó ciklusok sorendje.
[Szerkesztve] -
Forest_roby
őstag
nem -ez így mégse jó -én nem erre gondoltam.
Azt kell csinálni, hogy egy oszlopba kiiratni az egésszet és a ciklusok között vmi elválasztót kiiratni - így tudod szeparálni a különböző tömböket. Ha ez kész egy másik progival megcsinálni a végső text filet. sztem máshogy nem nagyon megy - persze lehet memóriából is csinálni ez egészet.
1
2
3
4
5
6
-
7
8
9
10
11
12
-
...
és ebből:
1___7___x___y
2___8___z
3___9
.
.
.
.
.
mod: NEM! tömbökbe kellene menteni az oszlopok tartalmát, abbol meg pofon egyszerű lenne a mátrixot megcsinálni! A kérdés persze az hogy hány tömb kellene ehhez?
[Szerkesztve] -
Drótszamár
őstag
Oszloponként lemented, és a végén összegyúrod? Vagy az nem járható út ?
Esetleg egy jó nagy tömmbe eltárolni az egészet, és a végén kiírni fájlba?
Az a baj, hogy a textfile-ba amiket látsz oszlopokat, azok nem oszlopok, hanem érték,sortörés,érték,sortörés.... (tehát egy sima szekvencia. Az hogy a képernyőn hogy látod az most mellékes)
Neked ide kéne minden érték után beszúrni a következőt (esetleg valami elválasztó a kettő közé). Ez eléggé macerás. Mindeképpen valami memóriában összefésülős algoritmusban érdemes gondolkodni. Akár úgy, hogy egész fájl beolvas, a memóriában összefuttatod a 2 adatsort, majd újra kiírod. -
Jester01
veterán
1. using namespace
C++ban lehetőség van névterek használatára, hogy a névütközést el lehessen kerülni. (namespace akarmi { ... } )
Az alap könyvtár az ''std'' névteret használja. Using nélkül pl. ki kellene írni mindenhol, hogy std::cout. A using használatával az adott névtér elemeire közvetlenül lehet hivatkozni. Bizonyos (tipikusan régebbi) fordítók nem támogatják a névtereket vagy pedig az std névteret automatikusan úgy kezelik mintha lenne rá using.
2. a main paraméterei
A main függvény helyes prototítpusa az int main(int argc, char *argv[]), ahol argc a parancsori argumentumok száma és argv az argumentumok tömbje. A 0. indexű elem tipikusan a program neve. A függvény visszatérési értéke pedig egy int ami egy tetszőleges kód, tipikusan 0 a sikeres lefutás jelzésére.
A void main() forma véletlenül működik, mivel a C hívási konvenció ezt lehetővé teszi. Ilyenkor a parancssor nem érdekes és a visszatérési érték pedig valami véletlen szám lesz. Használata nem javasolt, visszatérési értéket mindig célszerű megadni, ha pedig nem akarod használni a parancssort, akkor egy int main(int, char**) sorral ez korrekten megtehető.
3. cstdlib
Igen, ebben a C stdlib függvényei érhetők el, többek között a system is. (Ez a példa szerintem nem volt szerencsés a kollega úr részéről, bár tény, hogy nem egyszerű billentyű lenyomásra várni C++ban.)
4. EXIT_SUCCESS
Ez egy előredefinált konstans a sikeres lefutás jelzésére (0). Lásd 2. pont.
MOD: hú de nagyon lassú voltam
[Szerkesztve] -
cucka
addikt
using namespace std;
azt jelenti, hogy a standard névteret használod. itt jól le van írva: [link] (egyszerű példák, utolsó paragrafus szól az std-ről)
int main(int argc, char *argv[])
a main paraméterei a program argumentumait jelentik, vagyis ezekből olvasható ki, hogy pl. milyen paraméterekkel indítottad el parancssorból a programodat. argc a paraméterek számát jelöli (arg. count) másik meg egy argc elemszámú tömb amiben maguk az argumentumok vannak (arg. value).
#include <cstdlib>
gondolom ez tartalmazza a system(''pause'') parancsot pl, ami a press any key-t okozza bezárás előtt?
igen. a system paranccsal külső parancsokat/programokat tudsz futtatni. a pause (beépített) parancs dos/win alatt, próbáld ki parancssorban. [link]
return EXIT_SUCCESS;
ez azt jelenti, hogy a main függvény EXIT_SUCCESS értéket ad vissza kilépéskor. ez az érték a 0. [link]
[Szerkesztve] -
Jester01
veterán
Itt valami telepítési probléma lett ...
Egyébként mint már említettem Cucka progija helyes, a te verziód az sajnos nem:
t.cpp:3: error: '::main' must return 'int'
t.cpp: In function 'int main()':
t.cpp:5: error: 'cout' was not declared in this scope
A könyvet nem kell kidobni, csak a using-ot kell mindig beírni, illetve a main függvényből int-et kell visszaadni. -
Lortech
addikt
-
Jester01
veterán
Csak a szokásos probléma: a fórummotor cseréli az idézőjelet két aposztrófra.
Vagyis Cucka példája jó, csak idézőjel kell. (gondolom copy&paste volt).
Ez linux alatt is ugyanez lenne (főleg mivel a devcpp gcc alapú ha jól tudom.)
MOD: Ha nem vagy linuxos, akkor miért Tux az avatarod? Mert aranyos?
Engem nem zavar, nyugodtan hagyhatod, csak mást sugall...
[Szerkesztve] -
cucka
addikt
devcpp így kéne tudja futtatni, legalábbis nálam.
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<<''Hello World!'';
}
iostream.h elvileg deprecated, ezért nem ajánlja használni
cout-ot pedig akkor találja meg, ha megmondod neki, hogy a standard namespace-ben van, vagy std::cout formában használod. (hű ez a mondat elég pongyolán volt megfogalmazva)
[Szerkesztve]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- P15s Gen2i 27% 15.6" FHD IPS érintő i7-1185G7 T500 16GB 512GB NVMe ujjlolv
- Asus Vivobook X412U (i3 7th, 4 GB 120 GB SSD) laptop leárazás!!!
- Thinkpad T14s Gen3 14" FHD+ IPS i7-1260P 32GB 512GB NVMe ujjlolv IR kam gar
- ROG Flow X13 GV301QE 13.4" FHD+ IPS érintő Ryzen 9 5900HS 3050Ti 16 512 hun vbill toll ujjlolv gar
- T14 Gen2i 27% 14" FHD IPS i5-1135G7 16GB 256GB NVMe ujjlolv IR kam gar
- Vállalom telefonok,tabletek javítását ,(szoftveres hibát is,frp lock-ot is)márkától fügetlenűl
- Eladó Samsung Galaxy S21 FE 5G 6/128GB / 12 hó jótállás
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AS USB-C Dock Gen2 (akár 3x4K felbontás)
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ!!! RITKASÁG! Microsoft Surface Pro 11 Qualcomm Snapdragon X Elite 16GB 1000GB OLED 120Hz Gar!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő

tab az '\t' karakter (mint a '\n' ugy müködik) de egyébként sztem tökmindegy hogy mit raksz bele

Engem nem zavar, nyugodtan hagyhatod, csak mást sugall...
