Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/tests/io.c

    r5a7966bb rcb91437  
    1010// Created On       : Wed Mar  2 16:56:02 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun  8 09:52:10 2017
    13 // Update Count     : 51
     12// Last Modified On : Tue Mar 21 22:36:06 2017
     13// Update Count     : 48
    1414//
    1515
     
    1717
    1818int main() {
    19         char c;                                                                                         // basic types
     19        char c;                                                                                                         // basic types
    2020        short int si;
    2121        unsigned short int usi;
     
    3232        double _Complex dc;
    3333        long double _Complex ldc;
    34         enum { size = 10 };
    35         char s1[size], s2[size];
     34        char s1[10], s2[10];
    3635
    3736        int x = 3, y = 5, z = 7;
     
    4241        sout | endl;
    4342
     43        ifstream in;                                                                                            // create / open file
     44        open( &in, "io.data", "r" );
     45
     46        &in | &c                                                                                                        // character
     47                | &si | &usi | &i | &ui | &li | &uli | &lli | &ulli             // integral
     48                | &f | &d | &ld                                                                                 // floating point
     49                | &fc | &dc | &ldc                                                                              // floating-point complex
     50                | cstr( s1 ) | cstr( s2, 10 );                                                  // C string, length unchecked and checked
     51
     52        sout | c | ' ' | endl                                                                           // character
     53                 | si | usi | i | ui | li | uli | lli | ulli | endl             // integral
     54                 | f | d | ld | endl                                                                    // floating point
     55                 | fc | dc | ldc | endl;                                                                // complex
     56        sout | endl;
     57        sout | f | "" | d | "" | ld | endl                                                      // floating point without separator
     58                 | sepDisable | fc | dc | ldc | sepEnable | endl                // complex without separator
     59                 | sepOn | s1 | sepOff | s2 | endl                                              // local separator removal
     60                 | s1 | "" | s2 | endl;                                                                 // C string without separator
     61        sout | endl;
     62
     63        sepSet( sout, ", $" );                                                                          // change separator, maximum of 15 characters
     64        sout | f | d | ld | endl
     65                 | fc | dc | ldc | endl
     66                 | s1 | s2 | endl;
     67        sout | endl;
     68        sepSet( sout, " " );
     69
    4470        sout
    4571                // opening delimiters
    46                 | "x (" | 1
    47                 | "x [" | 2
    48                 | "x {" | 3
    49                 | "x =" | 4
    50                 | "x $" | 5
    51                 | "x £" | 6
    52                 | "x ¥" | 7
    53                 | "x ¡" | 8
    54                 | "x ¿" | 9
    55                 | "x «" | 10
     72                | "v(" | 27
     73                | "v[" | 27
     74                | "v{" | 27
     75                | "$" | 27
     76                | "=" | 27
     77                | "£" | 27
     78                | "¥" | 27
     79                | "¡" | 27
     80                | "¿" | 27
     81                | "«" | 27
     82                | endl
     83                // closing delimiters
     84                | 25 | ","
     85                | 25 | "."
     86                | 25 | ":"
     87                | 25 | ";"
     88                | 25 | "!"
     89                | 25 | "?"
     90                | 25 | "%"
     91                | 25 | "¢"
     92                | 25 | "»"
     93                | 25 | ")"
     94                | 25 | "]"
     95                | 25 | "}"
     96                | endl
     97                // opening-closing delimiters
     98                | 25 | "'" | 27
     99                | 25 | "`" | 27
     100                | 25 | "\"" | 27
     101                | 25 | " " | 27
     102                | 25 | "\f" | 27
     103                | 25 | "\n" | 27
     104                | 25 | "\r" | 27
     105                | 25 | "\t" | 27
     106                | 25 | "\v" | 27
    56107                | endl;
    57         sout
    58                 // closing delimiters
    59                 | 1 | ", x"
    60                 | 2 | ". x"
    61                 | 3 | "; x"
    62                 | 4 | "! x"
    63                 | 5 | "? x"
    64                 | 6 | "% x"
    65                 | 7 | "¢ x"
    66                 | 8 | "» x"
    67                 | 9 | ") x"
    68                 | 10 | "] x"
    69                 | 11 | "} x"
    70                 | endl;
    71         sout
    72                 // opening-closing delimiters
    73                 | "x`" | 1 | "`x'" | 2
    74                 | "'x\"" | 3 | "\"x:" | 4
    75                 | ":x " | 5 | " x\t" | 6
    76                 | "\tx\f" | 7 | "\fx\v" | 8
    77                 | "\vx\n" | 9 | "\nx\r" | 10
    78                 | "\rx" |
    79                 endl;
    80         sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4 | endl;
    81108
    82         ifstream in;                                                                            // create / open file
    83         open( &in, "io.data", "r" );
    84 
    85         &in | &c                                                                                        // character
    86                 | &si | &usi | &i | &ui | &li | &uli | &lli | &ulli     // integral
    87                 | &f | &d | &ld                                                                 // floating point
    88                 | &fc | &dc | &ldc                                                              // floating-point complex
    89                 | cstr( s1 ) | cstr( s2, size );                                // C string, length unchecked and checked
    90 
    91         sout | c | ' ' | endl                                                           // character
    92                 | si | usi | i | ui | li | uli | lli | ulli | endl // integral
    93                 | f | d | ld | endl                                                             // floating point
    94                 | fc | dc | ldc | endl;                                                 // complex
    95         sout | endl;
    96         sout | f | "" | d | "" | ld | endl                                      // floating point without separator
    97                 | sepDisable | fc | dc | ldc | sepEnable | endl // complex without separator
    98                 | sepOn | s1 | sepOff | s2 | endl                               // local separator removal
    99                 | s1 | "" | s2 | endl;                                                  // C string without separator
    100         sout | endl;
    101 
    102         sepSet( sout, ", $" );                                                          // change separator, maximum of 15 characters
    103         sout | f | d | ld | endl
    104                 | fc | dc | ldc | endl
    105                 | s1 | s2 | endl;
    106         sout | endl;
    107 
    108         [int, int] t1 = [1, 2], t2 = [3, 4];
    109         sout | t1 | t2 | endl;                                                          // print tuple
    110 
    111         sepSet( sout, " " );
    112         sepSet( sout, ", $" );                                                          // set separator from " " to ", $"
    113         sout | 1 | 2 | 3 | " \"" | sepGet( sout ) | "\"" | endl;
    114         sepSet( sout, " " );                                                            // reset separator to " "
    115         sout | 1 | 2 | 3 | " \"" | sepGet( sout ) | "\"" | endl;
    116 
    117         sout | sepOn | 1 | 2 | 3 | sepOn | endl;                        // separator at start of line
    118         sout | 1 | sepOff | 2 | 3 | endl;                                       // locally turn off implicit separator
    119 
    120         sout | sepDisable | 1 | 2 | 3 | endl;                           // globally turn off implicit separation
    121         sout | 1 | sepOn | 2 | 3 | endl;                                        // locally turn on implicit separator
    122         sout | sepEnable | 1 | 2 | 3 | endl;                            // globally turn on implicit separation
    123 
    124         sepSetTuple( sout, " " );                                                       // set tuple separator from ", " to " "
    125         sout | t1 | t2 | " \"" | sepGetTuple( sout ) | "\"" | endl;
    126         sepSetTuple( sout, ", " );                                                      // reset tuple separator to ", "
    127         sout | t1 | t2 | " \"" | sepGetTuple( sout ) | "\"" | endl;
    128 
    129         sout | t1 | t2 | endl;                                                          // print tuple
    130 
    131         [int, int, const char *, double] t3 = { 3, 4, "a", 7.2 };
     109        [int, int, const char *, double] t = { 3, 4, "a", 7.2 };
    132110        sout | [ 3, 4, "a", 7.2 ] | endl;
    133         sout | t3 | endl;
     111        sout | t | endl;
    134112        sepSetTuple( sout, " " );
    135         sout | t3 | endl;
    136         sout | sepOn | t3 | sepDisable | t3 | sepEnable | t3 | endl;
     113        sout | t | endl;
     114        sout | sepOn | t | sepDisable | t | sepEnable | t | endl;
    137115        sepSet( sout, "^" );
    138116        sepSetTuple( sout, "-" );
    139         sout | t3 | 3 | 4 | t3 | endl;
     117        sout | t | 3 | 4 | t | endl;
    140118}
    141119
Note: See TracChangeset for help on using the changeset viewer.