/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Hejsa. Har problemer med at læse en txt fi~
Fra : Flare


Dato : 05-06-02 20:15

Hejsa jeg prøver at læse en text fil med: getline(File,stringvar,'\n')

Og det virker sådan set også perfekt, men når jeg prøver at udskrive tegn
som '\n' og ø(\x9B) går det (sådan set) logisk galt. Den udksriver bare \n
og ikke New line, eller ø. Hvordan "fortæller" jeg at et tegn i en text skal
betragtes "as is it is"? Er det et escape tegn man kan sætte foran eller
sådan noget?

Ps: Jeg udskriver stringvar, som er af typen string fra <cstring> med cout
fra <iostream>

Hilsen
Anders



 
 
Morten Brix Pedersen (05-06-2002)
Kommentar
Fra : Morten Brix Pedersen


Dato : 05-06-02 22:26

Flare wrote:
> Og det virker sådan set også perfekt, men når jeg prøver at udskrive tegn
> som '\n' og ø(\x9B) går det (sådan set) logisk galt. Den udksriver bare \n
> og ikke New line, eller ø. Hvordan "fortæller" jeg at et tegn i en text skal
> betragtes "as is it is"? Er det et escape tegn man kan sætte foran eller
> sådan noget?

Det ville være nemmere hvis du viste den kode du havde problemer med,
jeg har svært ved at forstå hvad du prøver på at forklare.

Prøv denne kode:

#include <iostream>

int main()
{
std::cout << "en newline (\\n): " << "\n";
std::cout << "en newline med single quotes (\\n): " << '\n';
}

> Ps: Jeg udskriver stringvar, som er af typen string fra <cstring> med cout
> fra <iostream>

string typen ligger i <string>, <cstring> indeholder funktioner der kan
manipulere rå character arrays.

- Morten.


Flare (05-06-2002)
Kommentar
Fra : Flare


Dato : 05-06-02 23:00

<cstring> indeholder funktioner der kan manipulere rå character arrays.
Ok hvilke? ved du det?

Lidt kode:
ifstream Fil("lang.dat");

while( getline(Fil,word,'\n') )
{
if (word[0] == beskedNr[0] && word[1] == beskedNr[1] && word[2] ==
beskedNr[2])
{
strengFundet = true;
break;
}
cout << word
}
--- ALT dette virke fint meeeeen ø blvier udskrevet forkert og \n aner jeg
ikke hvordan den skal udskrives. For jeg vil jo ikke bare have \n udskrevet
som tekst.---

Uddrag af lang.dat
-------------------------
108 I københavn
109 Her skal være linie skift \n og tekste forsætter på næste linie
110 Indtast brugernavn:
--------------------------

\n bliver selvfølgelig bare skrevet ud..Men det æsnekr jeg ikke. Og ø og æ
bliver ikke udskrevet rigtigt.

Håber jeg kan komme lidt nærmere svaret.
Anders



J. Martin Petersen (06-06-2002)
Kommentar
Fra : J. Martin Petersen


Dato : 06-06-02 08:26

"Flare" <dct_flare@hotmail.com> writes:

> Uddrag af lang.dat
> -------------------------
> 108 I københavn
> 109 Her skal være linie skift \n og tekste forsætter på næste linie
> 110 Indtast brugernavn:
> --------------------------
>
> \n bliver selvfølgelig bare skrevet ud..Men det æsnekr jeg ikke. Og ø og æ
> bliver ikke udskrevet rigtigt.

Hvis lang.dat indeholder de *to* tegn '\' og 'n' er det klart, de
bliver udskrevet som "\n". _Tegnet_ '\n' er ét tegn, der repræsenteres
som '\n', da det er et "grafisk" tegn. Et linjeskift kan man jo som
sådan ikke se - men man kan se virkningen af det.

En mulig løsning var at tekststrengen igennem, og så erstatte "\n" med
'\n', inden du skriver ud.

--
J. Martin Petersen "Atter springer gnuerne ud i vandet..."

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste