Kezdőoldal » Számítástechnika » Programozás » Ebben a kódrészletben tulajdon...

Ebben a kódrészletben tulajdonképpen mi gondoskodik arról, hogy a while ciklus true értéket kapjon? Hiszen a getline függvénynek nem bool típusú visszatérési értéke van.

Figyelt kérdés

while ( getline(fajl,sor) ) { }

Illetve amikor már nem végzi el az adott műveletet (a fájl következő sorának kiolvasását), mivel a fájl végére ért, akkor milyen értéket ad vissza pontosan?



2017. júl. 17. 09:30
 1/7 anonim ***** válasza:
100%

1. Milyen nyelv ez, F#? Merthogy az ilyesmi rohadtul nyelvfüggő. Tegyük fel, hogy C/C++-ról van szó...

2. A C/C++ tele van egy rakat implicit tipuskonverzióval. Ezt az alacsony szintű nyelvek kedvelői szeretik, mert "jajj de kényelmes, és elegáns, hogy mindent egy sorba lehet írni", a magasabb szintű nyelvek kedvelői meg utálják, mert nem mindig egyértelmű, veszélyes, könnyű benézni, elrontani (lásd '=' és '==' felcserélése). Talán a getline a beolvasott karakterek számát adja vissza int-ként, ahol a 0-ból hamis, minden másból igaz lesz.

3. El kéne olvasni a dokumentációt, nem tippelgetni meg kérdezősködni kéne, hogy vajon mit ad vissza ez meg az a függvény.

2017. júl. 17. 09:43
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
100%
C-ben nincs true meg false, nem is létezik bool típus, csak nulla és nem nulla. A ciklus addig fut, amíg függvény visszatérési értéke nem nulla. Mikor a függvény nem talál már semmit, akkor ad vissza nullát, és lépteti ki a ciklust.
2017. júl. 17. 10:02
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
C++
2017. júl. 17. 10:33
 4/7 anonim ***** válasza:
100%
Attól még, hogy cpp fájlba rakod, meg esetleg C++ fordítóval fordítod, ez C kód. C++-ban itt iostreamet használnál. Abból a szempontból lényeges, hogy megértsd az elvet, nem azért, hogy C-C++ háborút indítsunk. Ez programozási technika előbb létezett, mint maga a C++ nyelv.
2017. júl. 17. 12:23
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Akkor tessék, itt a teljes kód:


#include <iostream>

#include <fstream>

using namespace std;


int main() {

string sor;

ifstream fajl ( "feladat.txt" );

if ( fajl.is_open() ) {

while ( getline(fajl,sor) ) {

cout << sor << endl;

}

} else {

cout << "Hiba a fajl megnyitasakor" << endl;

}

return 0;

}

2017. júl. 17. 14:34
 6/7 anonim ***** válasza:
A pénzenergia gondoskodik róla.
2017. júl. 17. 17:52
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:

Közben találtam egy egész jó kis dokumentációt, már ha valakit érdekelne esetleg a válasz.


"getline – sor beolvasása az adatfolyamból


public:

istream& getline(char* s, streamsize n);

istream& getline(char* s, streamsize n, char delim);


Beolvas egy sort az adatfolyamból az s C tömbbe, legfeljebb n karaktert, '\n'-t vagy delim karaktert sor végének használva. A függvény akkor áll meg, hogy ha beolvasott n-1 karaktert, ha sorvégjelet, vagy az adott elválasztót elérte (ekkor az elválasztót beolvassa, de nem adja hozzá a szöveghez), Vagy ha fájl végére ért. Bármely esetben lezárja a karakterláncot egy 0-ás byte-tal, és visszatérési értéke az objektum, amelyen hívták."


[link]

2017. júl. 17. 19:01

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

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!