Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/io/manipulatorsInput.cfa

    rb771581 rca2feff  
    77// Created On       : Sat Jun  8 17:58:54 2019
    88// Last Modified By : Peter A. Buhr
    9 // Last Modified On : Sun Jan 28 11:59:55 2024
    10 // Update Count     : 133
     9// Last Modified On : Wed Jan  3 11:15:04 2024
     10// Update Count     : 103
    1111//
    1212
     
    5555        }
    5656        {
    57                 char s[] = "yyyyyyyyyyyyyyyyyyyy";                                                                                                      // Input characters consumed:
     57                char s[] = "yyyyyyyyyyyyyyyyyyyy";
    5858                const char sk_fmt[] = "%*[abc]";
    59                 scanf( "abc " ); scanf( sk_fmt ); for ( 5 ) scanf( "%*c" ); printf( "1 %s\n", s );      // |abc |\ncccccb| \nxx\n|
    60                 scanf( "%s", s );                                                               printf( "2 %s\n", s );                          // |abcxxx|
    61                 scanf( "%*s" );                                                                 printf( "3 %s\n", s );                          // |\nabcyyy|
    62                 scanf( "%8s", s );                                                              printf( "4 %s\n", s );                          // |\naaaaaaaa|
    63                 scanf( "%*8s" );                                                                printf( "5 %s\n", s );                          // |xxxxxxxx|
    64 
    65                 scanf( "%[abc]", s );                                                   printf( "6 %s\n", s );                          // |aabbccbb|
    66                 scanf( "%[^abc]", s );                                                  printf( "7 %s\n", s );                          // |dddwww|
    67                 scanf( "%*[abc]" );                                                             printf( "8 %s\n", s );                          // |bbbbbbbb|
    68                 scanf( "%*[^abc]" );                                                    printf( "9 %s\n", s );                          // |wwwwwwww|
    69                 scanf( "%8[abc]", s );                                                  printf( "10 %s\n", s );                         // |aaaaaaaa|
    70                 scanf( "%8[^abc]", s );                                                 printf( "11 %s\n", s );                         // |wwwwwwww|
    71                 scanf( "%*8[abc]" );                                                    printf( "12 %s\n", s );                         // |aaaaaaaa|
    72                 scanf( "%*8[^abc]" );                                                   printf( "13 %s\n", s );                         // |wwwwwwww|
    73                 scanf( "\n" );                                                                  // must start next line                         // |\n|
     59                scanf( "abc " ); scanf( sk_fmt ); for ( 5 ) scanf( "%*c" ); printf( "1 %s\n", s );
     60                scanf( "%s", s );                                                               printf( "2 %s\n", s );
     61                scanf( "%*s" );                                                                 printf( "3 %s\n", s );
     62                scanf( "%8s", s );                                                              printf( "4 %s\n", s );
     63                scanf( "%*8s" );                                                                printf( "5 %s\n", s );
     64
     65                scanf( "%[abc]", s );                                                   printf( "6 %s\n", s );
     66                scanf( "%[^abc]", s );                                                  printf( "7 %s\n", s );
     67                scanf( "%*[abc]" );                                                             printf( "8 %s\n", s );
     68                scanf( "%*[^abc]" );                                                    printf( "9 %s\n", s );
     69                scanf( "%8[abc]", s );                                                  printf( "10 %s\n", s );
     70                scanf( "%8[^abc]", s );                                                 printf( "11 %s\n", s );
     71                scanf( "%*8[abc]" );                                                    printf( "12 %s\n", s );
     72                scanf( "%*8[^abc]" );                                                   printf( "13 %s\n", s );
    7473
    7574                int rc;
    7675                s[0] = 'q'; s[1] = '\0'; rc = 99;
    77                 rc = scanf( "%[abc]", s );                                              printf( "14 rc=%d, %s\n", rc, s );      // ||
     76                rc = scanf( "%[abc]", s );                                              printf( "14 rc=%d, %s\n", rc, s );
    7877                s[0] = 'q'; s[1] = '\0'; rc = 99;
    79                 rc = scanf( "%[^u]", s );                                               printf( "15 rc=%d, %s\n", rc, s );      // ||
    80                 scanf( "%*[u]\n" );                                                                                                                                     // |uuuuu\n|
    81                 scanf( "%[^\n]\n", s );                                                 printf( "16 %s\n", s );                         // |get this line\n|
    82                 scanf( "%[^%%]%%\n", s );                                               printf( "17 %s\n", s );                         // |@# this line 1)-{}%\n|
    83                 scanf( "%*[^%%]%%\n", s );                                              printf( "18 %s\n", s );                         // |@# this line 1)-{}%\n|
    84 
    85                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // ||
    86                 scanf( "\"%[^\"]\"", s );                                               printf( "19 %s\n", s );                         // |"abc"|
    87                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    88                 scanf( "'%[^']'", s );                                                  printf( "20 %s\n", s );                         // |'abc  '|
    89                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    90                 scanf( "{%[^}]}", s );                                                  printf( "21 %s\n", s );                         // |{ d d\n\nd }|
    91                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    92                 scanf( "X%[^Y]Y", s );                                                  printf( "22 %s\n", s );                         // |X           ZC44%Y|
    93                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    94                 scanf( "X%*[^Y]Y", s );                                                 printf( "23 %s\n", s );                         // |X           ZC44%Y|
    95                 scanf( "\n" );                                                                  // must start next line                         // |\n|
    96 
    97                 char ch;
    98                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    99                 scanf( "'%c'", &ch );                                                   printf( "24 %c\n", ch );                        // |x|
    100                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    101                 scanf( "\"%c\"", &ch );                                                 printf( "25 %c\n", ch );                        // |x|
    102                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    103                 scanf( "{%c}", &ch );                                                   printf( "26 %c\n", ch );                        // |x|
    104                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    105                 scanf( "X%cY", &ch );                                                   printf( "27 %c\n", ch );                        // |x|
    106                 scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace                            // |\n|
    107                 scanf( "X%*cY", &ch );                                                  printf( "28 %c\n", ch );                        // |x|
    108                 scanf( "\n" );                                                                  // must start next line                         // |\n|
     78                rc = scanf( "%[^u]", s );                                               printf( "15 rc=%d, %s\n", rc, s );
     79                scanf( "%*[u]\n" );
     80                scanf( "%[^\n]\n", s );                                                 printf( "16 %s\n", s );
     81                scanf( "%[^%%]%%\n", s );                                               printf( "17 %s\n", s );
     82
     83                scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace
     84                scanf( "\"%[^\"]\"", s );                                               printf( "18 %s\n", s );
     85                scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace
     86                scanf( "'%[^']'", s );                                                  printf( "19 %s\n", s );
     87                scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace
     88                scanf( "{%[^}]}", s );                                                  printf( "20 %s\n", s );
     89                scanf( "%*[ \f\n\r\t\v]" );                                             // ignore whitespace
     90                scanf( "X%[^Y]Y", s );                                                  printf( "21 %s\n", s );
     91                scanf( "\n" );                                                                  // must start next line
    10992        }
    11093        {
     
    125108                sin | ignore( incl( "abc", wdi( sizeof(s), 8, s ) ) ); sout | "12" | s;
    126109                sin | ignore( excl( "abc", wdi( sizeof(s), 8, s ) ) ); sout | "13" | s;
    127                 sin | nl;
    128110
    129111                s[0] = 'q'; s[1] = '\0';
     
    134116                sin | getline( wdi( sizeof(s), s ) );                   sout | "16" | s;
    135117                sin | getline( wdi( sizeof(s), s ), '%' ) | "\n"; sout | "17" | s;
    136                 sin | ignore( getline( wdi( sizeof(s), s ), '%' ) ) | "\n"; sout | "18" | s;
    137 
    138                 sin | quoted( wdi( sizeof(s), s ) );                    sout | "19" | s;
    139                 sin | quoted( wdi( sizeof(s), s ), '\'' );              sout | "20" | s;
    140                 sin | quoted( wdi( sizeof(s), s ), '{', '}' );  sout | "21" | s;
    141                 sin | quoted( wdi( sizeof(s), s ), 'X', 'Y' );  sout | "22" | s;
    142                 sin | ignore( quoted( wdi( sizeof(s), s ), 'X', 'Y' ) ); sout | "23" | s;
    143 
    144                 char ch;
    145                 sin | quoted( ch );                                                             sout | "24 " | ch;
    146                 sin | quoted( ch, '\"' );                                               sout | "25 " | ch;
    147                 sin | quoted( ch, '{', '}' );                                   sout | "26 " | ch;
    148                 sin | quoted( ch, 'X', 'Y' );                                   sout | "27 " | ch;
    149                 sin | ignore( quoted( ch, 'X', 'Y' ) );                 sout | "28 " | ch;
    150                 sin | nl;
    151         }
    152         // Keep harmonized with collections/string-istream-manip
     118
     119                sin | quoted( wdi( sizeof(s), s ) );                    sout | "18" | s;
     120                sin | quoted( wdi( sizeof(s), s ), '\'' );              sout | "19" | s;
     121                sin | quoted( wdi( sizeof(s), s ), '{', '}' );  sout | "20" | s;
     122                sin | quoted( wdi( sizeof(s), s ), 'X', 'Y' );  sout | "21" | s;
     123        }
     124    // Keep harmonized with collections/string-istream-manip
    153125        {
    154126                char c;
    155127                sin | c;                                                                                sout | c;
    156128                sin | ignore( c );                                                              sout | c;
    157                 sin | nl;
    158 
    159                 char ca[3] = { 'a', 'b', 'c' };
    160                 sin | wdi( sizeof(ca), ca[0] );                                 sout | ca[0] | ca[1] | ca[2];
    161                 sin | ignore( wdi( sizeof(ca), ca[0] ) );               sout | ca[0] | ca[1] | ca[2];
    162                 sin | nl;
    163129
    164130                signed char sc;
Note: See TracChangeset for help on using the changeset viewer.