Milyen hosszú lehet egy sor egy txt file-ban? És milyen hosszú lehet egy string C++ -ban?
Kedves 22:06
Nem értem, hogy mi a probléma a feladattal. Hogy szerinted miért értelmetlen.
Vagy egy szöveges file, amiben egy qrva nagy sor van. Ezt kell beolvasni. A fenti módon azt állítod, hogyha túl nagy, akkor a file megse nyilik. De ha megnyilik, akkor biztosan hogy a string be tudja fogadni a sort?
azért értelmetlen, mert majd nézd meg, hogy mekkora számokkal dobálózunk itt, ha 200 kbyte szöveg fér egy sorba, az is sok, és semmi értelme nincs az égvilágon. ezért mondom. ha APIval nyitod meg, akkor akkor tér vissza nullával, tehát sikeresen, ha a kért számú bájtot beolvasta a pufferbe, úgyhogy ott biztos lehetsz benne. a streames megoldásnál ez már nem igaz, ott a file nyitásról kapsz hibát, a beolvasásról már nem.
a kérdésed viszont még mindig értelmetlen, azért mert egy elvont, nemlétező problémát feszegetsz, 4 gigabájtos, filerendszer korlátait feszegető méretű (egysoros) textfileokat nem ifstream.opennel nyitnak meg, és nem egybe pakolják be a memóriába. ezért értelmetlen egy szinten túl ezt feszegetni, mert nyugodtan minősíthető b.aromságnak is. de remélem azért amit leírok valami csak megragad belőle :)
Amúgy igen, ki kell próbálni, az a legegyszerűbb mindig.
A fájl meg fog nyílni, gyanítom hogy vagy a string fog kivételt dobni (bár erre nem találok semmiféle utalást, tehát kétlem) vagy csak simán ilyen rejtett hibák kezdenek megjelenni, mivel túlcsordul a számláló. Esetleg segfault.
A próbálkozást én is javaslom.
A kérdést elvinek találom: egy sor az ujsor/kocsivissza karakterig tart. elötte/elöttük akármennyi karakter lehetséges a file max mérete természetesen korlátozza.
Természetesen a gyakorlatban már száz karakter egy sorban is nagyon sok.
A sztring (karakterfűzér)C/C++-ban elvileg egy mutató egy memória területre ami a sztringet tartalmazza. A végét "0" jelzi. A lefoglalt memóriának nem kell akkorának lennie mint a sztringnek (nyilván kisebb nem lehet). C++ esetén szerintem vannak "gyári" sztring osztályok ahol a memória kezelés automatikus.
//Kiegészítés:::::::::::::
A TURBO Pascalban a karakterfűzér részére lefoglalt memória első bájtja tartalmazta a sztring hosszát.->Egy sztring max 255 karakter lehetett és nem okozott problémát több százezer programozó számára.:)//
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!