Kezdőoldal » Számítástechnika » Programozás » Hogy tudok úgy file-ba írni,...

Hogy tudok úgy file-ba írni, hogy az ne íródjon felül mindíg?

Figyelt kérdés

pl 50 darab számot akarok írni egy file-ba


for ( int i = 0; i < 50; i++){


V_szamok[i] = rand()%4+1;


fout.open( "szoveg.txt",ofstream::app );

fout << V_szamok[i] << " ";


}


eddig ilyenem van de mindíg csak 1 szám marad benne. köszi a választ (az értelmeset leginkább)


2015. dec. 10. 17:04
 1/10 A kérdező kommentje:
C++ ban, bocsi ez lemaradt
2015. dec. 10. 17:05
 2/10 anonim ***** válasza:

A ciklus előtt kéne megnyitni a fájlt, utána meg lezárni sem ártana.

G.

2015. dec. 10. 17:09
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
A ciklus minden lefutásakor újranyitod a fájlt, és az elejére írsz. Vagy a ciklus kezdése előtt nyisd meg, és a ciklusban csak az írás legyen, vagy pedig ha így marad, akkor tegyél oda egy keresést is, hogy ugorjon a fájl végére írás előtt.
2015. dec. 10. 17:09
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:
köszi
2015. dec. 10. 17:11
 5/10 anonim ***** válasza:

Verzió 1:

Kiolvasod a tartalmát és memóriában hozzáadod amit akarsz, majd az egészet vissza írod felülírással.


Verzió 2:

"a" típussal nyitod meg a fájlt ami alapból hozzáfűzést csinál.


[link]

2015. dec. 10. 17:11
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

Nincs 2. verzió.

Orbitális baromság egy ciklusban 50szer megnyitni egy fájlt...

Gondolkodjatok már mielőtt hülye tanácsot osztogattok.

2015. dec. 10. 17:52
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:

Azert irodik ki az elso szam csak, mert a masodik lefutasnal mar meg van nyitval, igy felrobban az egesz.


Windows alatt a hibakod erre hivatkozik:

"ERROR_ALREADY_EXISTS

183 (0xB7)

Cannot create a file when that file already exists."


Nyisd meg a for ciklus elott, es "jo" lesz. Manualisan bezarni pedig teljesen ertelmetlen a fuggveny vegen, annak ellenere, hogy javasoltak.

2015. dec. 10. 17:54
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:

Minden bizonnyal én következtetek rosszul, de a Delphi fájlkezelője és a C# StreamReader-e bezárás nélkül bele se írja az utolsó puffertartalmat a fájlba...

G.

2015. dec. 10. 18:42
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
100%
C++ -ban miutan vege a main funkcionak meghivodik az std::ofstream destructora is, ami megfeleloen bezarja a fajlt.
2015. dec. 10. 19:14
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:
100%

De egyebkent valahogy igy nez ki az egesz:


std::array<int, 50> tomb;

for (auto& i : tomb) { i = RandomNumber(1, 4); }


std::ofstream ost{"test.txt", std::ofstream::app};

if (!ost) { std::cerr << "hiba tortent a fajl megnyitasakor\n"; return 1; }


std::copy(tomb.begin(), tomb.end(), std::ostream_iterator<decltype(tomb)::value_type>{ost, "\n"});

2015. dec. 10. 19:33
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!