Streams. Formatted output cout << right << setw(2) << i << setw(8) << raiseToPower(2, i) << endl; // Insertion operator << This program lists powers of.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Advertisements

INTRODUCTION TO C LANGUAGE
โครงสร้างโปรแกรมภาษา C
Control Statement if..else switch..case for while do-while.
6. โครงสร้างข้อมูลแบบแฟ้ม
File.
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
LAB # 4.
Lecture no. 10 Files System
Functions Standard Library Functions User-defined Functions.
โครงสร้างควบคุมการทำงาน
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Week 2 Variables.
Computer Programming for Engineers
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
Introduction to Flowchart
Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
การเขียนคำสั่งควบคุม การทำงานขั้นพื้นฐาน
หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)
Operator of String Data Type
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
การทำงานกับ Files ธวัชชัย เอี่ยมไพโรจน์. UNIX File Structure ดูรายละเอียดได้ที่ 404/doc/file.ppt บน UNIX ทุกๆ อย่างเป็น.
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
คำสั่ง ในระบบ DOS (Disk Operating System)
องค์ประกอบของคอมพิวเตอร์
หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (while, do-while)
Timed Math Quiz. โปรแกรมสุ่มคำนวณเลขแข่งกับ เวลา.
1 exit() and break C++ provides a way to leave a program early (before its natural finish) with the exit() function. The format of exit() is as follows:
Collections. Data structures Data Structures ( โครงสร้างข้อมูล ) เกิดจากการ นำข้อมูลขั้นพื้นฐานที่แบ่งแยกไม่ได้ (atomic data type) เช่น int, char, double.
Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
ARRAY & PRINTF สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
MTH 261 File Management. File Management File Management จะอธิบายเกี่ยวกับการเขียน ส่วนจัดการแฟ้มข้อมูล เราสามารถที่จะเขียน โปรแกรมเพื่อเรียกใช้แฟ้มข้อมูลที่เรามี
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
งานวิชา เทคโนโลยี สารสนเทศ 4/3 เรื่อง INPUT และ OUTPUT จัดทำโดย นาย ชาญชัย ศรีน้อย เลขที่ 3 นาย ณัฐดนัย จันทมาศ เลขที่ 4 นาย อุดมศักดิ์ เกื้อนะ เลขที่
คำสั่งควบคุมการทำงาน
C# Communication
โครงสร้างภาษาซี C ++ structure
Chapter 10 Data Files.
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
Computer Programming I โดย อ.วิมลศรี เกตุโสภณ สาขาวิชาระบบสารสนเทศ
โครงสร้างโปรแกรมภาษา C
หลักการโปรแกรม อ.ธนากร อุยพานิชย์.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การเขียนโปรแกรมด้วยภาษา C
บทที่ 5 อินพุตและเอาต์พุต
ภาษา C เบื้องต้น.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างโปรแกรมภาษา C
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
โครงสร้างภาษา C Arduino
บทที่ 4 ตัวแปร (Variables)
บทที่ 1 โครงสร้างคอมพิวเตอร์พื้นฐาน
Basic Input Output System
Control Statement เงื่อนไขคำสั่งในโปรแกรม ภาษา C
ตัวแปรกับชนิดของข้อมูล
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
บริษัท พัฒนาวิชาการ (2535) จำกัด
การเขียนภาษาจาวาเบื้องต้น
บทที่ 3 Programming By Wathinee duangonnam
Week 5 C Programming.
Variable Constant.
การเขียนโปรแกรมภาษา Java (ต่อ)
การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)
File.
Array: One Dimension Programming I 9.
Lecture 7: ทางเลือกแบบมีโครงสร้างซ้อนใน
Decision: Single and Double Selection (if and if-else statement)
เมนูหลัก ส่วนประกอบของคอมพิวเตอร์ ผลการเรียนรู้ที่คาดหวัง
ใบสำเนางานนำเสนอ:

Streams

Formatted output cout << right << setw(2) << i << setw(8) << raiseToPower(2, i) << endl; // Insertion operator << This program lists powers of two. Enter exponent limit:

Output manipulator The manipulators that take parameters, you need to include setw(n) Set the width of the next field. Transient property (it affects only the next value). setprecision(digits) Set the precision for the stream to digits. Persistent property (it remains in effect until it is explicitly changed.) setfill(ch) Set the fill character for the stream to ch. By default, space are added to.. Persistent property.

Output manipulator (Persistent property) left right fixed (3.14) scientific (3.14E+00) showpoint noshowpoint showpos (+) noshowpos uppercase (E) nouppercase (e) boolalpha (true) noboolalpha

Formatted output #include using namespace std; const double PI = ; const double SPEED_OF_LIGHT = E+8; const double FINE_STRUCTURE = E-3;

void printPrecisionTable() { cout << " prec | pi | speed of light | fine-structure" << endl; cout << " " << endl; for (int prec = 0; prec <= 6; prec += 2) { cout << setw(4) << prec << " |"; cout << " " << setw(12) << setprecision(prec) << PI << " |"; cout << " " << setw(16) << setprecision(prec) << SPEED_OF_LIGHT << " |"; cout << " " << setw(14) << setprecision(prec) << FINE_STRUCTURE << endl; }

int main() { cout << uppercase << right; cout << "Default format:" << endl << endl; printPrecisionTable(); cout << endl << "Fixed format:" << fixed << endl << endl; printPrecisionTable(); cout << endl << "Scientific format:" << scientific << endl << endl; printPrecisionTable(); return 0; }

Default format: prec | pi | speed of light | fine-structure | 3 | 3E+08 | | 3.1 | 3E+08 | | | 2.998E+08 | | | E+08 |

Fixed format: prec | pi | speed of light | fine-structure | 3 | | 0 2 | 3.14 | | | | | | | |

Scientific format: prec | pi | speed of light | fine-structure | 3E+00 | 3E+08 | 7E-03 2 | 3.14E+00 | 3.00E+08 | 7.26E-03 4 | E+00 | E+08 | E-03 6 | E+00 | E+08 | E-03

Formatted input int limit; cout << "Enter exponent limit: "; cin >> limit; // extraction operator >> char ch; cout << "Enter a single character: "; cin >> noskipws >> ch; skipwsPersistent property noskipwsPersistent property

Data files ไฟล์ข้อมูลถูกสร้างขึ้นเพื่อเก็บรวบรวมข้อมูลต่างๆเข้าไว้ ด้วยกัน ไฟล์ข้อมูลมักจะถูกเก็บอยู่ในหน่วยความจำภายนอก เช่น Hard Disk, CD หรือ DVD เป็นต้น เมื่อโปรแกรมทำการอ่าน (read) ข้อมูล ข้อมูลจะถูก สำเนาจากอุปกรณ์ภายนอกเข้ามายังหน่วยความจำ ภายใน เมื่อโปรแกรมทำการบันทึก (write) ข้อมูล ข้อมูลจะถูก สำเนาจากหน่วยความจำภายในไปยังอุปกรณ์ภายนอก ในการเคลื่อนย้ายข้อมูลนี้จะมีการใช้พื้นที่หน่วยความจำ ที่กันเอาไว้เป็นพิเศษสำหรับพักข้อมูล ซึ่งเราเรียกว่า buffer การอ่านข้อมูลจากอุปกรณ์ภายนอกนั้นปกติจะอ่าน เป็น block (512 byte) ข้อมูลที่อ่านได้จะถูกเก็บไว้ใน buffer ก่อนที่โปรแกรมจะอ่านข้อมูลจาก buffer แล้ว นำไปประมวลผลต่อไป

Data files ในทางกลับกันเมื่อโปรแกรมต้องการบันทึกข้อมูลลง ฮาร์ดดิสค์ โปรแกรมจะบันทึกข้อมูลลง buffer ซึ่ง buffer จะทำหน้าที่ในการพักข้อมูลไว้จนกว่าข้อมูลจะเต็ม block แล้วจึงมีการนำข้อมูลจาก buffer บันทึกลงฮาร์ดดิสค์ จริงๆ การทำงานที่เกี่ยวข้องกับ buffer จะดูแลโดยโปรแกรม พิเศษที่เราเรียกกันว่า device drivers ซึ่งโปรแกรมนี้จะให้ มาโดยผู้สร้างอุปกรณ์ต่างๆ หรือมาพร้อมกับ Operating System โปรแกรมจะมองข้อมูลที่ส่งมาจากอุปกรณ์ (e.g. keyboard) หรือไฟล์ เสมือนว่าเป็นสายข้อมูล (data stream) และเมื่อโปรแกรมต้องการส่งข้อมูลให้กับ อุปกรณ์ (e.g. CRT) หรือไฟล์ก็จะส่งเป็นสายข้อมูล (data stream) ไปให้ ในระหว่างการรับส่งข้อมูลกับ buffer หากมีข้อผิดพลาด เกิดขึ้นก็อาจจะทำให้มีข้อมูลบางส่วนตกค้างอยู่ใน buffer ได้

Stream is an abstract representation of an input or output device that is a source of, or destination for, data.

Using file streams Reading or Writing a file in C++ – Declare a stream variable to refer to the file ifstream infile; ofstream outfile; – Open the file infile.open(“student.txt”); infile.open(filename.c_str()); // if the name of file stored in a // string variable named filename – Transfer the data – Close the file Infile.close();

Single character I/O Input stream – ใช้คำสั่ง get() ในการอ่านข้อมูล 1 ตัวอักษร เช่น ch = infile.get(); – คำสั่ง get จะ return ข้อมูลเป็น int เนื่องจาก ต้องการ return ข้อมูลบางตัวที่อยู่นอกขอบเขต ตัวอักษร เช่น EOF (End Of File) Output stream ใช้คำสั่ง put(ch) ในการบันทึก ข้อมูล ch – ใช้คำสั่ง put(ch) ในการบันทึกข้อมูล 1 ตัวอักษร เช่น outfile.put(ch);

Single character I/O int ch; while ((ch = infile.get()) != EOF) { cout.put(ch); }

Single character I/O #include using namespace std;

string promptUserForFile(ifstream & infile, string prompt = ""); int main() { ifstream infile; promptUserForFile(infile, "Input file: "); while (true) { int ch = infile.get(); if (ch == EOF) break; cout.put(ch); } infile.close(); return 0; }

string promptUserForFile(ifstream & infile, string prompt) { while (true) { cout << prompt; string filename; getline(cin, filename); infile.open(filename.c_str()); if (!infile.fail()) return filename; infile.clear(); cout << "Unable to open file. Try again." << endl; if (prompt == "") prompt = "Input file: "; }

Single character I/O How to read an integer represented as a string of decimal digits? The library implementation cannot know that the number is finished until it reads character that is not a digit. That character may be part of subsequent input. infile.unget();

Line oriented I/O while (true) { string line; getline(infile, line); if (infile.fail()) break; cout << line << endl; }

Formatted I/O int main() { ifstream infile; promptUserForFile(infile, "Input file: "); int total = 0; while (true) { int value; infile >> value; if (infile.fail()) break; // 1. reaching EOF 2. wrong char total += value; } infile.close(); cout << "The sum is " << total << endl; return 0; } // The program give no indication that an error has occurred.

Formatted I/O if (!infile.eof()) { error("Data error in file"); }

int main() { ifstream infile; promptUserForFile(infile, "Input file: "); int total = 0; while (true) { string line; getline(infile, line); if (infile.fail()) break; total += stringToInteger(line); } infile.close(); cout << "The sum is " << total << endl; return 0; }

String streams int stringToInteger(string str) { istringstream stream(str); int value; stream >> value >> ws; if (stream.fail() || !stream.eof()) { error("stringToInteger: Illegal integer format"); } return value; }

String streams string integerToString(int n) { ostringstream stream; stream << n; return stream.str(); }

Console input int limit; cout << "Enter exponent limit: "; cin >> limit; What happens if the user tries to enter the value 16 but types the letter t instead of the digit 6?

int getInteger(string prompt) { int value; string line; while (true) { cout << prompt; getline(cin, line); istringstream stream(line); stream >> value >> ws; if (!stream.fail() && stream.eof()) break; cout << "Illegal integer format. Try again." << endl; } return value; }