The greatest mistake you can make in life is to be continually fearing you will make one

Tuesday, 7 September 2010

Data Input and Output-III

Little More about printf

Flags in printf function:
  • We can place flags in the printf statement with in the control string which will affect the appearance of the output.
  • The flag must be placed immediately after the percent sign(%).
  • Two or flags can be combined for a single output.
  • Table shows the commonly used flags

    -Data item is left justified(ie)Blanks added after the data item
    +A sign(+(or)-) will precede with each signed numerical data item
    0Place leading zeros to appear instead of leading blanks
    #(with 0- & x- type conversion)Causes octal and hexadecimal data items to be processed by 0 and 0x respectively
    #(with e-,f- & g- type conversion)Causes a decimal point to be present in all floating point numbers even if the data item is a whole number.Also prevents the truncation of trailing zeros in g-type conversion
  • Example:

    int main()
        int x=1234;
        float y=15.5,z=-5.5;
        printf("%d %f %e\n",x,y,z);
        printf("%6d %7.0f %10.1e\n",x,y,z);
        printf("%-6d %-7.0f %-10.1e\n",x,y,z);
        printf("%+6d %+7.0f %+10.1e\n",x,y,z);
        printf("%-+6d %-+7.0f %-+10.1e\n",x,y,z);
        printf("%7.0f %#7.0f %7g %#7g\n",y,y,z,z);
        return 0;


    1234 15.500000 -5.500000e+00
      1234      16   -5.5e+00
    1234   16      -5.5e+00 
     +1234     +16   -5.5e+00
    +1234  +16     -5.5e+00 
         16     16.    -5.5 -5.50000
Prefixes in printf function: 
  • Prefixes within the control string to indicate the length of the corresponding argument.
  • Example: i indicates a signed or unsigned integer argument or a double precision argument. h indicates signed or unsigned short integer.

    int main()
        short x,y;
        long a,b;
        printf("%5hd %6hx %8lo %lu\n",x,y,a,b);
    hd->short decimal integer
    hx->short hexadecimal integer
    lo->Long octal integer
    lu->Long unsigned integer
  • It is also possible to write the conversion characters x,e,g in uppercase as X,E,G. These uppercase conversion characters cause any letters with in the output data to be displayed in uppercase

    int main()
        int x=0x10ab,y=0777;
        float z=0.3e-12;
        printf("|%8x %10.2e|\n",x,z);
        printf("|%8X %10.2E|\n",x,z);
        printf("|%8x %8o|\n",x,y);
        printf("|%#8x %#8o|\n",x,y);

    | 10ab 3.00e-13|
    | 10AB 3.00E-13|
    | 10ab 777|
    | 0x10ab 0777|
gets() and puts() Function:
  • gets and puts function used to read and write string(character array terminate with a newline character)
  • The string may include whitespace characters
  • Example:

    int main()
        char text[100];

    helo welcome
    helo welcome

No comments:

Post a Comment