Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/user/user.tex

    r200fcb3 rba80f99  
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Tue Dec 11 23:19:26 2018
    14 %% Update Count     : 3400
     13%% Last Modified On : Fri Aug 31 07:54:50 2018
     14%% Update Count     : 3396
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    178178int main( void ) {
    179179        int x = 0, y = 1, z = 2;
    180         ®sout | x | y | z;®§\indexc{sout}§
     180        ®sout | x | y | z | endl;®§\indexc{sout}§
    181181}
    182182\end{cfa}
     
    513513Floating exponentiation\index{exponentiation!floating} is performed using \Index{logarithm}s\index{exponentiation!logarithm}, so the base cannot be negative.
    514514\begin{cfa}
    515 sout | 2 ®\® 8u | 4 ®\® 3u | -4 ®\® 3u | 4 ®\® -3 | -4 ®\® -3 | 4.0 ®\® 2.1 | (1.0f+2.0fi) ®\® (3.0f+2.0fi);
     515sout | 2 ®\® 8u | 4 ®\® 3u | -4 ®\® 3u | 4 ®\® -3 | -4 ®\® -3 | 4.0 ®\® 2.1 | (1.0f+2.0fi) ®\® (3.0f+2.0fi) | endl;
    516516256 64 -64 0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
    517517\end{cfa}
     
    547547
    548548
    549 \subsection{Loop Control}
     549%\subsection{\texorpdfstring{\protect\lstinline@for@ Statement}{for Statement}}
     550\subsection{\texorpdfstring{\LstKeywordStyle{for} Statement}{for Statement}}
    550551
    551552The ©for©/©while©/©do-while© loop-control allows empty or simplified ranges.
     
    556557the down-to range ©-~=©\index{-~=@©-~=©} means inclusive range [N,M].
    557558©0© is the implicit start value;
    558 ©1© is the implicit increment value.
    559 The up-to range uses ©+=© for increment;
    560 the down-to range uses ©-=© for decrement.
     559©1© is the implicit increment value for an up-to range and ©-1© for an implicit down-to range.
    561560The loop index is polymorphic in the type of the start value or comparison value when start is implicitly ©0©.
    562561\begin{cquote}
    563562\begin{tabular}{@{}ll|l@{}}
    564 \multicolumn{2}{c|}{loop control} & \multicolumn{1}{c}{output} \\
     563\multicolumn{2}{c|}{for control} & \multicolumn{1}{c}{output} \\
    565564\hline
    566565\begin{cfa}
     
    572571for ( ®10® ) { sout | "A"; }
    573572for ( ®1 ~= 10 ~ 2® ) { sout | "B"; }
    574 for ( ®10 -~= 1 ~ 2® ) { sout | "C"; }
     573for ( ®10 -~= 1 ~ -2® ) { sout | "C"; }
    575574for ( ®0.5 ~ 5.5® ) { sout | "D"; }
    576575for ( ®5.5 -~ 0.5® ) { sout | "E"; }
    577576for ( ®i; 10® ) { sout | i; }
    578577for ( ®i; 1 ~= 10 ~ 2® ) { sout | i; }
    579 for ( ®i; 10 -~= 1 ~ 2® ) { sout | i; }
     578for ( ®i; 10 -~= 1 ~ -2® ) { sout | i; }
    580579for ( ®i; 0.5 ~ 5.5® ) { sout | i; }
    581580for ( ®i; 5.5 -~ 0.5® ) { sout | i; }
    582581for ( ®ui; 2u ~= 10u ~ 2u® ) { sout | ui; }
    583 for ( ®ui; 10u -~= 2u ~ 2u® ) { sout | ui; }
    584 enum { N = 10 };
    585 for ( ®N® ) { sout | "N"; }
    586 for ( ®i; N® ) { sout | i; }
    587 for ( ®i; N -~ 0® ) { sout | i; }
    588 const int start = 3, comp = 10, inc = 2;
     582for ( ®ui; 10u -~= 2u ~ -2u® ) { sout | ui; }
     583int start = 3, comp = 10, inc = 2;
    589584for ( ®i; start ~ comp ~ inc + 1® ) { sout | i; }
    590585\end{cfa}
    591586&
    592587\begin{cfa}
    593 sout | nl;
    594 sout | nl;
    595 sout | nl;
    596 sout | "zero" | nl;
    597 sout | nl;
    598 sout | nl;
    599 sout | nl;
    600 sout | nl;
    601 sout | nl;
    602 sout | nl;
    603 sout | nl;
    604 sout | nl;
    605 sout | nl;
    606 sout | nl;
    607 sout | nl;
    608 sout | nl;
    609 sout | nl | nl;
    610 
    611 sout | nl;
    612 sout | nl;
    613 sout | nl | nl;
    614 
    615 sout | nl;
     588sout | endl;
     589sout | endl;
     590sout | endl;
     591sout | endl;
     592sout | endl;
     593sout | endl;
     594sout | endl;
     595sout | endl;
     596sout | endl;
     597sout | endl;
     598sout | endl;
     599sout | endl;
     600sout | endl;
     601sout | endl;
     602sout | endl;
     603sout | endl;
     604sout | endl;
     605
     606sout | endl;
    616607\end{cfa}
    617608&
     
    620611empty
    621612empty
    622 zero
     613
    623614A
    624615A A A A A A A A A A
     
    6346252 4 6 8 10
    63562610 8 6 4 2
    636 
    637 N N N N N N N N N N
    638 0 1 2 3 4 5 6 7 8 9
    639 10 9 8 7 6 5 4 3 2 1
    640627
    6416283 6 9
     
    24592446        int bar( int p ) {
    24602447                ®i® += 1;                               §\C{// dependent on local variable}§
    2461                 sout | ®i®;
     2448                sout | ®i® | endl;
    24622449        }
    24632450        return bar;                                     §\C{// undefined because of local dependence}§
     
    24652452int main() {
    24662453        * [int]( int ) fp = foo();      §\C{// int (* fp)( int )}§
    2467         sout | fp( 3 );
     2454        sout | fp( 3 ) | endl;
    24682455}
    24692456\end{cfa}
     
    32313218\begin{cfa}
    32323219int x = 1, y = 2, z = 3;
    3233 sout | x ®|® y ®|® z;
     3220sout | x ®|® y ®|® z | endl;
    32343221\end{cfa}
    32353222&
     
    32523239\begin{cfa}
    32533240[int, [ int, int ] ] t1 = [ 1, [ 2, 3 ] ], t2 = [ 4, [ 5, 6 ] ];
    3254 sout | t1 | t2;                                         §\C{// print tuples}§
     3241sout | t1 | t2 | endl;                                  §\C{// print tuples}§
    32553242\end{cfa}
    32563243\begin{cfa}[showspaces=true,aboveskip=0pt]
     
    32643251&
    32653252\begin{cfa}
    3266 sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2);
     3253sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2) | endl;
    32673254\end{cfa}
    32683255\\
     
    32903277A separator does not appear at the start or end of a line.
    32913278\begin{cfa}[belowskip=0pt]
    3292 sout | 1 | 2 | 3;
     3279sout | 1 | 2 | 3 | endl;
    32933280\end{cfa}
    32943281\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    32993286A separator does not appear before or after a character literal or variable.
    33003287\begin{cfa}
    3301 sout | '1' | '2' | '3';
     3288sout | '1' | '2' | '3' | endl;
    33023289123
    33033290\end{cfa}
     
    33063293A separator does not appear before or after a null (empty) C string.
    33073294\begin{cfa}
    3308 sout | 1 | "" | 2 | "" | 3;
     3295sout | 1 | "" | 2 | "" | 3 | endl;
    33093296123
    33103297\end{cfa}
     
    33163303\begin{cfa}[mathescape=off]
    33173304sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x =" | 4 | "x $" | 5 | "x £" | 6 | "x ¥"
    3318                 | 7 | "x ¡" | 8 | "x ¿" | 9 | "x «" | 10;
     3305                | 7 | "x ¡" | 8 | "x ¿" | 9 | "x «" | 10 | endl;
    33193306\end{cfa}
    33203307%$
     
    33303317\begin{cfa}[belowskip=0pt]
    33313318sout | 1 | ", x" | 2 | ". x" | 3 | "; x" | 4 | "! x" | 5 | "? x" | 6 | "% x"
    3332                 | 7 | "¢ x" | 8 | "» x" | 9 | ") x" | 10 | "] x" | 11 | "} x";
     3319                | 7 | "¢ x" | 8 | "» x" | 9 | ") x" | 10 | "] x" | 11 | "} x" | endl;
    33333320\end{cfa}
    33343321\begin{cfa}[basicstyle=\tt,showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    33403327A seperator does not appear before or after a C string begining/ending with the \Index*{ASCII} quote or whitespace characters: \lstinline[basicstyle=\tt,showspaces=true]@`'": \t\v\f\r\n@
    33413328\begin{cfa}[belowskip=0pt]
    3342 sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x:" | 4 | ":x " | 5 | " x\t" | 6 | "\tx";
     3329sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x:" | 4 | ":x " | 5 | " x\t" | 6 | "\tx" | endl;
    33433330\end{cfa}
    33443331\begin{cfa}[basicstyle=\tt,showspaces=true,showtabs=true,aboveskip=0pt,belowskip=0pt]
     
    33493336If a space is desired before or after one of the special string start/end characters, simply insert a space.
    33503337\begin{cfa}[belowskip=0pt]
    3351 sout | "x (§\color{red}\texttt{\textvisiblespace}§" | 1 | "§\color{red}\texttt{\textvisiblespace}§) x" | 2 | "§\color{red}\texttt{\textvisiblespace}§, x" | 3 | "§\color{red}\texttt{\textvisiblespace}§:x:§\color{red}\texttt{\textvisiblespace}§" | 4;
     3338sout | "x (§\color{red}\texttt{\textvisiblespace}§" | 1 | "§\color{red}\texttt{\textvisiblespace}§) x" | 2 | "§\color{red}\texttt{\textvisiblespace}§, x" | 3 | "§\color{red}\texttt{\textvisiblespace}§:x:§\color{red}\texttt{\textvisiblespace}§" | 4 | endl;
    33523339\end{cfa}
    33533340\begin{cfa}[basicstyle=\tt,showspaces=true,showtabs=true,aboveskip=0pt,belowskip=0pt]
     
    33663353\begin{cfa}[mathescape=off,belowskip=0pt]
    33673354sepSet( sout, ", $" );                                          §\C{// set separator from " " to ", \$"}§
    3368 sout | 1 | 2 | 3 | " \"" | ®sep® | "\"";
     3355sout | 1 | 2 | 3 | " \"" | ®sep® | "\"" | endl;
    33693356\end{cfa}
    33703357%$
     
    33753362\begin{cfa}[belowskip=0pt]
    33763363sepSet( sout, " " );                                            §\C{// reset separator to " "}§
    3377 sout | 1 | 2 | 3 | " \"" | ®sepGet( sout )® | "\"";
     3364sout | 1 | 2 | 3 | " \"" | ®sepGet( sout )® | "\"" | endl;
    33783365\end{cfa}
    33793366\begin{cfa}[showspaces=true,aboveskip=0pt]
     
    33853372strcpy( store, sepGet( sout ) );                          §\C{// copy current separator}§
    33863373sepSet( sout, "_" );                                            §\C{// change separator to underscore}§
    3387 sout | 1 | 2 | 3;
     3374sout | 1 | 2 | 3 | endl;
    33883375\end{cfa}
    33893376\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    33923379\begin{cfa}[belowskip=0pt]
    33933380sepSet( sout, store );                                          §\C{// change separator back to original}§
    3394 sout | 1 | 2 | 3;
     3381sout | 1 | 2 | 3 | endl;
    33953382\end{cfa}
    33963383\begin{cfa}[showspaces=true,aboveskip=0pt]
     
    34033390\begin{cfa}[belowskip=0pt]
    34043391sepSetTuple( sout, " " );                                       §\C{// set tuple separator from ", " to " "}§
    3405 sout | t1 | t2 | " \"" | ®sepTuple® | "\"";
     3392sout | t1 | t2 | " \"" | ®sepTuple® | "\"" | endl;
    34063393\end{cfa}
    34073394\begin{cfa}[showspaces=true,aboveskip=0pt]
     
    34103397\begin{cfa}[belowskip=0pt]
    34113398sepSetTuple( sout, ", " );                                      §\C{// reset tuple separator to ", "}§
    3412 sout | t1 | t2 | " \"" | ®sepGetTuple( sout )® | "\"";
     3399sout | t1 | t2 | " \"" | ®sepGetTuple( sout )® | "\"" | endl;
    34133400\end{cfa}
    34143401\begin{cfa}[showspaces=true,aboveskip=0pt]
     
    34203407Manipulators \Indexc{sepDisable}\index{manipulator!sepDisable@©sepDisable©} and \Indexc{sepEnable}\index{manipulator!sepEnable@©sepEnable©} \emph{globally} toggle printing the separator, \ie the seperator is adjusted with respect to all subsequent printed items.
    34213408\begin{cfa}[belowskip=0pt]
    3422 sout | sepDisable | 1 | 2 | 3                §\C{// globally turn off implicit separator}§
     3409sout | sepDisable | 1 | 2 | 3 | endl;           §\C{// globally turn off implicit separator}§
    34233410\end{cfa}
    34243411\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    34263413\end{cfa}
    34273414\begin{cfa}[belowskip=0pt]
    3428 sout | sepEnable | 1 | 2 | 3;           §\C{// globally turn on implicit separator}§
     3415sout | sepEnable | 1 | 2 | 3 | endl;            §\C{// globally turn on implicit separator}§
    34293416\end{cfa}
    34303417\begin{cfa}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    34353422Manipulators \Indexc{sepOn}\index{manipulator!sepOn@©sepOn©} and \Indexc{sepOff}\index{manipulator!sepOff@©sepOff©} \emph{locally} toggle printing the separator, \ie the seperator is adjusted only with respect to the next printed item.
    34363423\begin{cfa}[belowskip=0pt]
    3437 sout | 1 | sepOff | 2 | 3;                      §\C{// locally turn off implicit separator}§
     3424sout | 1 | sepOff | 2 | 3 | endl;                       §\C{// locally turn off implicit separator}§
    34383425\end{cfa}
    34393426\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    34413428\end{cfa}
    34423429\begin{cfa}[belowskip=0pt]
    3443 sout | sepDisable | 1 | sepOn | 2 | 3; §\C{// locally turn on implicit separator}§
     3430sout | sepDisable | 1 | sepOn | 2 | 3 | endl; §\C{// locally turn on implicit separator}§
    34443431\end{cfa}
    34453432\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    34483435The tuple separator also responses to being turned on and off.
    34493436\begin{cfa}[belowskip=0pt]
    3450 sout | t1 | sepOff | t2;                                §\C{// locally turn on/off implicit separator}§
     3437sout | t1 | sepOff | t2 | endl;                         §\C{// locally turn on/off implicit separator}§
    34513438\end{cfa}
    34523439\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    34563443use ©sep© to accomplish this functionality.
    34573444\begin{cfa}[belowskip=0pt]
    3458 sout | sepOn | 1 | 2 | 3 | sepOn;       §\C{// sepOn does nothing at start/end of line}§
     3445sout | sepOn | 1 | 2 | 3 | sepOn | endl ;       §\C{// sepOn does nothing at start/end of line}§
    34593446\end{cfa}
    34603447\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    34623449\end{cfa}
    34633450\begin{cfa}[belowskip=0pt]
    3464 sout | sep | 1 | 2 | 3 | sep ;          §\C{// use sep to print separator at start/end of line}§
     3451sout | sep | 1 | 2 | 3 | sep | endl ;           §\C{// use sep to print separator at start/end of line}§
    34653452\end{cfa}
    34663453\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
     
    34753462int main( void ) {
    34763463        int x = 1, y = 2, z = 3;
    3477         sout | x | y | z;
     3464        sout | x | y | z | endl;
    34783465        [int, [ int, int ] ] t1 = [ 1, [ 2, 3 ] ], t2 = [ 4, [ 5, 6 ] ];
    3479         sout | t1 | t2;                                         // print tuples
    3480         sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2);
    3481         sout | 1 | 2 | 3;
    3482         sout | '1' | '2' | '3';
    3483         sout | 1 | "" | 2 | "" | 3;
     3466        sout | t1 | t2 | endl;                                          // print tuples
     3467        sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2) | endl;
     3468        sout | 1 | 2 | 3 | endl;
     3469        sout | '1' | '2' | '3' | endl;
     3470        sout | 1 | "" | 2 | "" | 3 | endl;
    34843471        sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x =" | 4 | "x $" | 5 | "x £" | 6 | "x ¥"
    3485                 | 7 | "x ¡" | 8 | "x ¿" | 9 | "x «" | 10;
     3472                | 7 | "x ¡" | 8 | "x ¿" | 9 | "x «" | 10 | endl;
    34863473        sout | 1 | ", x" | 2 | ". x" | 3 | "; x" | 4 | "! x" | 5 | "? x" | 6 | "% x"
    3487                 | 7 | "¢ x" | 8 | "» x" | 9 | ") x" | 10 | "] x" | 11 | "} x";
    3488         sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x:" | 4 | ":x " | 5 | " x\t" | 6 | "\tx";
    3489         sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4;
     3474                | 7 | "¢ x" | 8 | "» x" | 9 | ") x" | 10 | "] x" | 11 | "} x" | endl;
     3475        sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x:" | 4 | ":x " | 5 | " x\t" | 6 | "\tx" | endl;
     3476        sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4 | endl;
    34903477
    34913478        sepSet( sout, ", $" );                                          // set separator from " " to ", $"
    3492         sout | 1 | 2 | 3 | " \"" | sep | "\"";
     3479        sout | 1 | 2 | 3 | " \"" | sep | "\"" | endl;
    34933480        sepSet( sout, " " );                                            // reset separator to " "
    3494         sout | 1 | 2 | 3 | " \"" | sepGet( sout ) | "\"";
     3481        sout | 1 | 2 | 3 | " \"" | sepGet( sout ) | "\"" | endl;
    34953482
    34963483        char store[sepSize];
    34973484        strcpy( store, sepGet( sout ) );
    34983485        sepSet( sout, "_" );
    3499         sout | 1 | 2 | 3;
     3486        sout | 1 | 2 | 3 | endl;
    35003487        sepSet( sout, store );
    3501         sout | 1 | 2 | 3;
     3488        sout | 1 | 2 | 3 | endl;
    35023489
    35033490        sepSetTuple( sout, " " );                                       // set tuple separator from ", " to " "
    3504         sout | t1 | t2 | " \"" | sepTuple | "\"";
     3491        sout | t1 | t2 | " \"" | sepTuple | "\"" | endl;
    35053492        sepSetTuple( sout, ", " );                                      // reset tuple separator to ", "
    3506         sout | t1 | t2 | " \"" | sepGetTuple( sout ) | "\"";
    3507 
    3508         sout | sepDisable | 1 | 2 | 3;          // globally turn off implicit separator
    3509         sout | sepEnable | 1 | 2 | 3;           // globally turn on implicit separator
    3510 
    3511         sout | 1 | sepOff | 2 | 3;                      // locally turn on implicit separator
    3512         sout | sepDisable | 1 | sepOn | 2 | 3; // globally turn off implicit separator
     3493        sout | t1 | t2 | " \"" | sepGetTuple( sout ) | "\"" | endl;
     3494
     3495        sout | sepDisable | 1 | 2 | 3 | endl;           // globally turn off implicit separator
     3496        sout | sepEnable | 1 | 2 | 3 | endl;            // globally turn on implicit separator
     3497
     3498        sout | 1 | sepOff | 2 | 3 | endl;                       // locally turn on implicit separator
     3499        sout | sepDisable | 1 | sepOn | 2 | 3 | endl; // globally turn off implicit separator
    35133500        sout | sepEnable;
    3514         sout | t1 | sepOff | t2;                                // locally turn on/off implicit separator
    3515 
    3516         sout | sepOn | 1 | 2 | 3 | sepOn ;      // sepOn does nothing at start/end of line
    3517         sout | sep | 1 | 2 | 3 | sep ;          // use sep to print separator at start/end of line
     3501        sout | t1 | sepOff | t2 | endl;                         // locally turn on/off implicit separator
     3502
     3503        sout | sepOn | 1 | 2 | 3 | sepOn | endl ;       // sepOn does nothing at start/end of line
     3504        sout | sep | 1 | 2 | 3 | sep | endl ;           // use sep to print separator at start/end of line
    35183505}
    35193506
     
    41804167        Fibonacci f1, f2;
    41814168        for ( int i = 1; i <= 10; i += 1 ) {
    4182                 sout | next( &f1 ) | ' ' | next( &f2 );
     4169                sout | next( &f1 ) | ' ' | next( &f2 ) | endl;
    41834170        } // for
    41844171}
     
    42464233                MyThread f[4];
    42474234        }
    4248         sout | global.value;
     4235        sout | global.value | endl;
    42494236}
    42504237\end{cfa}
     
    43244311void main( First * this ) {
    43254312        for ( int i = 0; i < 10; i += 1 ) {
    4326                 sout | "First : Suspend No." | i + 1;
     4313                sout | "First : Suspend No." | i + 1 | endl;
    43274314                yield();
    43284315        }
     
    43334320        wait( this->lock );
    43344321        for ( int i = 0; i < 10; i += 1 ) {
    4335                 sout | "Second : Suspend No." | i + 1;
     4322                sout | "Second : Suspend No." | i + 1 | endl;
    43364323                yield();
    43374324        }
     
    43404327int main( void ) {
    43414328        signal_once lock;
    4342         sout | "User main begin";
     4329        sout | "User main begin" | endl;
    43434330        {
    43444331                processor p;
     
    43484335                }
    43494336        }
    4350         sout | "User main end";
     4337        sout | "User main end" | endl;
    43514338}
    43524339\end{cfa}
     
    50455032void ?{}( Line * l ) {
    50465033        l->lnth = 0.0;
    5047         sout | "default";
     5034        sout | "default" | endl;
    50485035}
    50495036
     
    50525039void ?{}( Line * l, float lnth ) {
    50535040        l->lnth = lnth;
    5054         sout | "lnth" | l->lnth;
     5041        sout | "lnth" | l->lnth | endl;
    50555042
    50565043}
     
    50585045// destructor
    50595046void ^?() {
    5060         sout | "destroyed";
     5047        sout | "destroyed" | endl;
    50615048        l.lnth = 0.0;
    50625049}
     
    58045791In particular, output of ©char© variable now print a character rather than the decimal ASCII value of the character.
    58055792\begin{cfa}
    5806 sout | 'x' | " " | (int)'x';
     5793sout | 'x' | " " | (int)'x' | endl;
    58075794x 120
    58085795\end{cfa}
     
    70347021#include <gmp>§\indexc{gmp}§
    70357022int main( void ) {
    7036         sout | "Factorial Numbers";
     7023        sout | "Factorial Numbers" | endl;
    70377024        Int fact = 1;
    70387025
    7039         sout | 0 | fact;
     7026        sout | 0 | fact | endl;
    70407027        for ( unsigned int i = 1; i <= 40; i += 1 ) {
    70417028                fact *= i;
    7042                 sout | i | fact;
     7029                sout | i | fact | endl;
    70437030        }
    70447031}
Note: See TracChangeset for help on using the changeset viewer.