» »

Preskok presledka C++

Preskok presledka C++

primozsu ::

Delam primere v C++ in sem naletel na primer, kjer se uporabi cin.eatwhite() (za preskok presledka), vendar mi program ne deluje. Javi mi napako 'struct std::istream' has no member named 'eatwhite'.
Obstaja kaj podobnega, da bi uporabil namesto tega?

koda:
#include cstdlib>
#include iostream>
#include fstream>


using namespace std;

struct oseba
{
       int sifra;
       char priimek[30];
       int starost;
};

int main(int argc, char *argv[])
{
    ofstream dat("osebe.dat");
    
    cout << "Vnesi sifro, ime in priimek in starost osebe.\n\n"; 
    
    cout << "? ";
    oseba o;

    while(cin >> o.sifra)
    {
        cin.get();
        cin.eatwhite();
        
        cin.getline(o.priimek, 30, ',');
        cin.eatwhite();
        
        cin << o.starost;
        cin.get();
        
        dat.write((char*)&o, sizeof(o));
        
        cout << "? ";
    }
    
    system("PAUSE");
    return EXIT_SUCCESS;
  • spremenilo: primozsu ()

Matako ::

Da ni to ena izmed 'iostream.h' vs. 'iostream' for?

Kakorkoli namespace 'std' bi moral imeti definiran 'ws' (whitespace) extraktor, ki enostavno prebere presledke nikamor, npr:
cin >> ws >> x;
/\/\.K.

Jean-Paul ::

Ja, eatwhite(), dobra fora, a tega v C++-u ni.
Presledke lahko preskočiš tako:
char c;
while( (c = std::cin.get()) == ' ');

Seveda lahko stvar zapakiraš v funkcijo, npr.

char get_next_non_white(std::istream& is)
{
char c;
while( (c = is.get()) == ' ');
return c;
}

P.S. Stvar prilagodi za ostale presledke (\t,\n,\r,...)

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C++] Ponavljanje črk v stringu

Oddelek: Programiranje
141380 (1166) darkkk
»

[C++] vprašanja (strani: 1 2 3 4 5 6 7 8 9 )

Oddelek: Programiranje
44727312 (11858) aljazko1995
»

vprasanje c++

Oddelek: Programiranje
422459 (2458) Volk|
»

c++ datoteke

Oddelek: Programiranje
464038 (3527) Vesoljc
»

C problemček

Oddelek: Programiranje
131060 (863) OwcA

Več podobnih tem