[Contents]
[Prev] [Next] [Limbo Basics] [Limbo Programming] [Language Definition]

Examples

Program Listing 3-7 is a complete program that illustrates the use of format verbs and flags with the print function:

Program Listing 3-7 iox.b

  1. implement Command;
  2. include "sys.m";
  3. include "draw.m";
  4. sys: Sys;
  5. Command: module {
  6. init: fn(ctxt: ref Draw->Context, argv: list of string);
  7. };
  8. init(ctxt: ref Draw->Context, argv: list of string) {
  9. sys = load Sys Sys->PATH;
  10. num := 123;
  11. decnum := 2345.678901;
  12. scinum := 0.0000987;
  13. str := "Hello, Inferno!";
  14. # field width
  15. for (i := 1; i <= 5; i++) {
  16. sys->print("%8d %8d %8d %8d %8d\n",
  17. i, i*i, i*i*i, i*i*i*i, i*i*i*i*i);
  18. }
  19. sys->print("%d\n", num);
  20. sys->print("%10d\n\n", num);
  21. # precision
  22. sys->print("%.3f\n", decnum);
  23. sys->print("%2.5d\n", num);
  24. sys->print("%5.10s\n\n", str);
  25. # scientific notation
  26. sys->print("%e\n", scinum);
  27. sys->print("%E\n", decnum);
  28. sys->print("%g\n", decnum);
  29. sys->print("%g\n\n", scinum);
  30. # justification
  31. sys->print("Right-justified: %5d\n", num);
  32. sys->print("Left-justified: %-5d\n", num);
  33. sys->print("$%9.2f\n\n", decnum);
  34. # Decimal and Hexadecimal
  35. sys->print("%#d\n", num);
  36. sys->print("%x\n", num);
  37. sys->print("%#X\n", num);
  38. }

This program produces the following output:

		1        1        1        1        1
		2        4        8       16       32
		3        9       27       81      243
		4       16       64      256     1024
		5       25      125      625     3125
123
       123

2345.679
00123
Hello, Inf

9.870000e-05
2.345679E+03
2345.678901
9.87e-05

Right-justified:   123
Left-justified: 123  
$  2345.68

123.0
7b
0X7B



[Contents]
[Prev] [Next] [Limbo Basics] [Limbo Programming] [Language Definition]

Copyright © 1998, Lucent Technologies, Inc. All rights reserved.