[C++] Newlines via ifstream

Pagina: 1
Acties:

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Hoi,

Ik had een vraagje over het gebruik van ifstream. Ik wil in één keer een tekstfile uitlezen, gaat ook prima. Maar nu vroeg ik me af hoe de newlines zijn geimplementeerd in de buffer.
Als ik het binary zou inlezen zou het onder windows \r\n zijn, maar stel ik doe dat dus niet. Is het dan, ongeacht welk OS '\n', of blijft dat toch OS afhankelijk? Aangezien je met dingen als cout << '\n' een newline kan produceren en ifstream uit de zelfde familie komt... op google kan ik niet echt zinvolle info vinden :/

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Een newline is (meestal) \r\n of \n, dus ook als je het inleest met wat dan ook.
Je kan er dus niet van op aan dat een bestand dat op een windows pc staat als newline karakter \r\n heeft, aangezien het bestand best op een *nix pc kan zijn gegenereerd.

Je moet dus altijd iets inbouwen dat ervoor zorgt dat het beiden aan kan.

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Was ik al bang voor :/ Nou ja, 'tis geen ramp ofzo :) Toch bedankt.

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • marcelk
  • Registratie: December 2000
  • Niet online
Kun je niet gewoon dit gebruiken :
code:
1
cout << endl;

Verwijderd

er zijn nogal wat newlines in omloop :

Apple Macintosh [CR] (#x000D)
UNIX Based Systems [LF] (#x000A)
DOS Based Systems [CR][LF] (#x000D)(#x000A)
OS/390 [NEL] (#x0085)

source : http://www.w3.org/TR/newline