Ios (C++)

Το ios είναι μια πρότυπη βιβλιοθήκη της C++, η οποία ορίζει διάφορους τύπους και συναρτήσεις για την λειτουργικότητα των iostreams. Το αρχείο επικεφαλίδας #include <ios> αυτόματα χρησιμοποιείται από την βιβλιοθήκη iostream και οι προγραμματιστές πολύ σπάνια το καλούν μέσα στο κώδικά τους.

Μέλη

Ορισμοί τύπων

Επιλογές 

Οι παρακάτω επιλογές εφαρμόζονται σε ένα αντικείμενο ροής δεδομένων (stream object) και δεν επιβάλουν τα δεδομένα να γραφτούν ή να διαβαστούν αλλά αλλάζουν σημαίες μέσα στο αντικείμενο της ροής.

Κλάσεις

Παραδείγματα 

Στο παρακάτω παράδειγμα επιλέγουμε σε μια ροή δεδομένων εισόδου από το πληκτρολόγιο να αγνοηθούν τα whitespaces (χαρακτήρες τύπου απλού κενού, tab '\t' και αλλαγής γραμμής '\n'). Η αγνόηση των whitespaces είναι προεπιλογή στις ροές δεδομένων.:

#include <iostream>    // το iostream συμπεριλαμβάνει και το #include <ios>
#include <string>

using namespace std;

int main() {
   string s1, s2, s3;
   cout << "Είσοδος τρία αλφαριθμητικά: ";
   cin >> skipws >> s1 >> s2 >> s3;            // με το skipws επιβάλλεται στην ροή εισόδου από το πληκτρολόγιο
                                               // cin να αγνοηθούν τα τυχόν whitespaces που θα εισάγει ο χρήστης
                                               // στο stream είναι προεπιλεγμένο το skipws
   cout << "." << s1  << "." << endl;          
   cout << "." << s2 << "." << endl;
   cout << "." << s3 << "." << endl; 
   
   return 0;
}

Στο παρακάτω παράδειγμα επιλέγουμε να μην αγνοούνται τα whitespaces και θα δούμε διάβασμα από μια ροή δεδομένων μέσω μνήμης (string stream) :

#include <iostream>       // συμπεριλαμβάνει το #include <ios> και για το cin, cout
#include <sstream>        // για την ροή δεδομένων αλφαριθμητικού (στη μνήμη) istringstream

using namespace std;

int main () {
  char a, b, c, d;

  istringstream iss ("\n\t 123    4");
  iss >> noskipws >> a >> b >> c >> d;    // διάβασέ τα όλα, συμπεριλαμβανομένων και των whitespace

  // ισοδυναμεί με cout << "\n << '-' << '\t' << '-' << ' ' << '-' << '1' << endl;
  cout << a << "-" << b << "-" << c << "-"  << d << endl;

  iss >> skipws >> a >> b >> c;           // αγνοούνται τα whitespaces
  cout << a << b << c << endl;            // εμφανίζεται το "234" και όχι το "23 "

  return 0;
}

Στο παρακάτω παράδειγμα αλλάζουμε την ροή εξόδου ώστε στην έξοδο να εμφανίζεται η λογική μεταβλητή με το αλφαριθμητικό "true" ή "false" και όχι ως "1" ή "0" :

#include <iostream>

using namespace std;

int main() {
   bool bool_variable=true;
   cout << "Η έξοδος της λογικής μεταβλητής είναι: " << bool_variable << endl;    // εμφανίζει "1"
   cout << "Η έξοδος της λογικής μεταβλητής μετά την σημαία boolalpha: "  
        << boolalpha << bool_variable;                                            // εμφανίζει "true"

   return 1;
}

Παραπομπές 

C++ (STL)

en:Ios (C++)