Sztring beolvasása

Adjuk meg az alábbi program C++ megfelelőjét!

      #define STR_SIZE 40

      char str[STR_SIZE];

     

      // 1. szóközig vagy sor végéig olvasunk

      scanf("%s", str);

      printf("%s\n", str);

 

      fflush(stdin);

 

      // 2. Sor végéig vagy maximális méret-1-ig olvasunk

      fgets(str, STR_SIZE-1,stdin);

      printf("%s\n", str);




A megoldásért kattints ide!

#include <iostream>

#include <string>

#include <limits>

      
      using
namespace std;
      ... 

      
      // C++-ban mindig használjunk valamilyen sztring osztályt!

      // A string állományt sose felejtsük el beépíteni!!!

      string s;

     

      // 1. Szóközig vagy sor végéig olvasunk

      cin >> s;

      if(cin)

            cout << s << endl;

 

      // Ehhez a limits header kell: kiüríti a buffert a sor végéig

      cin.ignore(numeric_limits<std::streamsize>::max(),'\n');

 

      // 2. Sor végéig vagy a maximális méretig (s.max_size()) olvasunk

      if(std::getline(cin, s))

            cout << s << endl;

 

      // Ehhez a limits header kell: kiüríti a buffert a sor végéig

      cin.ignore(numeric_limits<std::streamsize>::max(),'\n');

 

 

      // Ha mindenképp C sztringet akarunk használni:

      // A lezáró nullát automatikusan beleszámolja

      cin.width(STR_SIZE);

      // 1. Szóközig vagy sor végéig olvasunk

      cin >> str;

      if(cin)

            cout << str << endl;

 

      // Ehhez a limits header kell: kiüríti a buffert a sor végéig

      cin.ignore(numeric_limits<std::streamsize>::max(),'\n');

 

      // 2. Sor végéig vagy STR_SIZE-1-ig olvas (a -1-et most sem kell kiírni)

      cin.getline(str, STR_SIZE);

      if(cin)

            cout << str << endl;

 




2008.01.07. 23:32:59 |  Permalink  |  Hozzászólások száma: 0  |  Tárgyszavak: Adatfolyamok


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások