1 / 22

計算機概論實習 2007-03-16

計算機概論實習 2007-03-16. Integral Stream Base expression: dec, oct, hex, setbase, and showbase. Use header <iomanip> Integers normally base 10 (decimal) Stream manipulators to change base dec (resets to base 10) cout << dec << 1000  1000 hex (base 16) cout << hex << 1000;  3e8

gabby
Download Presentation

計算機概論實習 2007-03-16

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機概論實習2007-03-16

  2. Integral Stream Base expression: dec, oct, hex, setbase, and showbase • Use header <iomanip> • Integers normally base 10 (decimal) • Stream manipulators to change base • dec (resets to base 10) cout << dec << 1000  1000 • hex (base 16) cout << hex << 1000;  3e8 • oct (base 8) cout << oct << 1000;  1750

  3. Integral Stream Base expression: dec, oct, hex, setbase, and showbase • setbase(newBase) • One of 8, 10, or 16 cout << setbase(dec) << 1000; • Base remains same until explicitly changed • showbase • Forces base of number to be shown • Decimal numbers default 1000 • Preceding 0x or 0X for hex 0x3e8 • Preceding 0 for octal 01750 • Remove with noshowbase

  4. Floating-Point Precision (precision, setprecision) • Set precision of floating point numbers • Number of digits to right of decimal • setprecision stream manipulator • Pass number of decimal points • cout << setprecision(5) • precision member function • cout.precision(newPrecision) • With no arguments, returns current precision • Settings remain until changed explicitly

  5. precision example int main(){ double root2 = sqrt( 2.0 ); //sqrt(2.0) = 1.414213562….. for (int i = 0; i <= 11 ; i++){ cout.precision( i ); cout << root2 << endl; } return 0; } 1.41421 1 1.4 1.41 1.414 1.4142 1.41421 1.414214 1.4142136 1.41421356 1.414213562 1.4142135624

  6. Field Width (width, setw) • width member function (base class ios_base) • Sets field width • Number of character positions for output • Can also use setw stream manipulator

  7. width, setw example int main(){ constint SIZE= 80; char buffer[SIZE]; cout << "Enter a sentence:" << endl; cin.get(buffer, SIZE); cout << "set width 5" << endl; cout.width(5); cout << buffer << endl; cout << "set width 6\n" << setw(6) << buffer << endl; return 0; }

  8. Trailing Zeros and Decimal Points (showpoint) • showpoint • Forces decimal number to print with trailing zeros • For decimal number 79.0 • 79 without showpoint • 79.000000 with showpoint (up to level of precision) • Reset with noshowpoint

  9. showpoint example int main(){ cout << showpoint << "After using showpoint" << endl << "9.9900 prints as: " << 9.9900 << endl << "9.9000 prints as: " << 9.9000 << endl << "9.0000 prints as: " << 9.0000 << endl << "9 prints as: " << 9 << endl; return 0; } After using showpoint 9.9900 prints as: 9.99000 9.9000 prints as: 9.90000 9.0000 prints as: 9.00000 9 prints as: 9

  10. Justification (left, right and internal) • left stream manipulator • Left-justified, padding to right • right stream manipulator • Right-justified, padding to left • internal • Number's sign left-justified • Number's value right-justified + 123 • showpos forces sign to print • Remove with noshowpos

  11. left, right and internal example int x = 12345; cout << showpos; cout << "Default is right justified:" << endl << setw( 10 ) << x; cout << "\n\nUse std::left to left justify x:\n" << left << setw( 10 ) << x; cout << "\n\nUse std::right to right justify x:\n" << right << setw( 10 ) << x << endl; cout << "\n\nUse std::internal to internal justify x:\n" << internal << setw(10) << x << endl;

  12. left, right and internal example Default is right justified: +12345 Use std::left to left justify x: +12345 Use std::right to right justify x: +12345 Use std::internal to internal justify x: + 12345

  13. Padding (fill, setfill) • Set fill character used in padding • fill member function • cout.fill('*') cout.fill( '*' ); cout << setw( 10 ) << dec << x << endl; *****10000 • setfill stream manipulator • setfill( '*' ) cout << setfill( '*' ) << setw( 10 ) << dec << x << endl;

  14. Floating-Point Numbers; scientific and fixed) • Stream manipulator scientific • Forces scientific notation • 1.946000e+009 • Stream manipulator fixed • Forces fixed point format • Prints number of decimals specified by precision • 1946000000.000000

  15. Scientific and fixed example double x = 0.001234567; double y = 1.946e9; cout << "Displayed in default format:" << endl << x << '\t' << y << endl; cout << "\nDisplayed in scientific format:" << endl << scientific << x << '\t' << y << endl; cout << "\nDisplayed in fixed format:" << endl << fixed << x << '\t' << y << endl;

  16. Uppercase/Lowercase Control (uppercase) • Stream manipulator uppercase • Uppercase E in scientific notation • 1E10 • Uppercase X in hex notation and uppercase hex letters • 0XABCD • By default, lowercase • Reset with nouppercase

  17. Specifying Boolean Format (boolalpha) • Data type bool • Values true or false • Outputs 0 (false) or 1 (true) when used with << • Displayed as integers • Stream manipulator boolalpha • Display strings "true" and "false" • Reset with noboolalpha bool boolvalue = true; cout << “The result is " << boolalpha << boolvalue;  The result is true

  18. Setting and Resetting the Format State via Member-Function flags • Can save/restore format states • After apply many changes, may want to restore original • Member function flags • cout.flags() • With no argument • Returns current state as fmtflags object • Namespace ios_base • Represents format state • cout.flags(0) : reset format • With fmtflags argument • Sets state • Returns previous state

  19. Example int main(){ int integerValue = 1000; double doubleValue = 0.0947628; cout << "The value of the flags variable is: " << cout.flags() << "\nPrint int and double in original format:\n" << integerValue << '\t' << doubleValue << endl << endl; ios_base::fmtflags originalFormat = cout.flags(); cout << showbase << oct << scientific; // change format

  20. Example cout << "The value of the flags variable is: " << cout.flags() << "\nPrint int and double in a new format:\n" << integerValue << '\t' << doubleValue << endl << endl; cout.flags( originalFormat ); // restore format cout << "The restored value of the flags variable is: " << cout.flags() << "\nPrint values in original format again:\n" << integerValue << '\t' << doubleValue << endl; return 0; }

  21. The value of the flags variable is: 513 Print int and double in original format: 1000 0.0947628   The value of the flags variable is: 012011 Print int and double in a new format: 01750 9.476280e-002 The restored value of the flags variable is: 513 Print values in original format again: 1000 0.0947628

  22. Practice 2 (P2) • Please write a program which input interface is as follows: • and the output interface is like below: 請輸入學生的三個成績 >: 80,90,90 10字元寛 10字元寛 10字元寛 國文 英文 數學 平均 80 90 90 86.67

More Related