week 3 data input and output n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Week 3 Data Input and Output PowerPoint Presentation
Download Presentation
Week 3 Data Input and Output

Loading in 2 Seconds...

play fullscreen
1 / 31

Week 3 Data Input and Output - PowerPoint PPT Presentation


  • 73 Views
  • Uploaded on

Week 3 Data Input and Output. Objectives. อุปกรณ์มาตรฐานในการรับข้อมูลและแสดงผลข้อมูล การรับและแสดงผลข้อมูลแบบ C++ โดยอาศัย iostream cin และ cout การกำหนดรูปแบบการแสดงผลโดยอาศัย stream manipulator และ stream format states การแสดงผลแบบภาษา C ด้วยคำสั่ง printf

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Week 3 Data Input and Output' - neron


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
week 3 data input and output
Week 3

Data Input and Output

objectives
Objectives
  • อุปกรณ์มาตรฐานในการรับข้อมูลและแสดงผลข้อมูล
  • การรับและแสดงผลข้อมูลแบบ C++ โดยอาศัยiostream
    • cinและcout
    • การกำหนดรูปแบบการแสดงผลโดยอาศัย stream manipulator และ stream format states
  • การแสดงผลแบบภาษา C ด้วยคำสั่งprintf
    • การกำหนดรูปแบบการแสดงผลโดยอาศัย format control string
standard input and output
Standard Input and Output
  • การนำข้อมูลเข้าโปรแกรมคอมพิวเตอร์ (input)
    • ช่องในการนำข้อมูลเข้าสู่โปรแกรม เช่นเมาส์ ไฟล์ เครือข่ายคอมฯ
    • Standard input device - คีย์บอร์ด
  • การแสดงผลลัพธ์จากการทำงานของโปรแกรม (output)
    • ช่องทางในการแสดง(หรือจัดเก็บ)ผลลัพธ์ เช่น ไฟล์ เครือข่าย เครืื่องพิมพ์
    • Standard output device –หน้าจอคอมพิวเตอร์
  • C++ สามารถรับข้อมูลเข้า และแสดงผลลัพธ์ของโปรแกรมโดยอาศัยชุดคำสั่งที่ได้สร้างไว้แล้ว และถูกจัดเก็บไว้ใน header file ที่ชื่อว่าiostream (input/output stream)
c input and output with iostream
C++ Input and Output with iostream
  • คำสั่งที่มีการใช้งานบ่อยๆ ได้แก่cinและcout
  • cinจะถูกใช้งานร่วมกับ right shift operator (>>) หรือถูกเรียกว่าstream extraction operator เมื่อใช้ร่วมกับcin
    • ใช้ในการดึงข้อมูลเข้าจาก standard input device
  • coutจะถูกใช้งานร่วมกับ left shift operator (<<) หรือถูกเรียกว่าstream insertion operatorเมื่อใช้ร่วมกับcout
    • ใช้แสดงผลลัพธ์ออกทาง standard output device
  • ในกรณีที่ต้องการอ่านข้อมูลเข้าจากไฟล์ หรือเขียนผลลัพธ์ที่ได้ไปเก็บในไฟล์ ต้องอาศัยชุดคำสั่งที่อยู่ใน head file ที่ชื่อว่าfstream(file stream)- ไม่ขอกล่าวถึงในเนื้อหานี้
slide5
cin
  • ใช้ในการรับข้อมูลที่ป้อนผ่านคีย์บอร์ดมาจัดเก็บในตัวแปรที่กำหนด
    • ไม่จัดเก็บข้อมูลอักขระที่เป็นช่องว่าง (whitespace)
  • รูปแบบพื้นฐานในการใช้งาน

cin>> var;

    • var- ตัวแปรที่จะใช้ในการจัดเก็บข้อมูล และได้มีการประกาศใช้งานแล้ว โดยC++ จะจัดเก็บข้อมูลให้ตรงตามชนิดของตัวแปร (data type) ที่ได้ประกาศ
  • สามารถใชัรับข้อมูลได้ทีละหลายๆตัว เช่น

cin>> var1 >> var2 >> var3;

    • เป็นการรับข้อมูล 3 ค่าจากผู้ใช้ป้อนผ่านคีย์บอร์ด
    • ขณะป้อนข้อมูล ต้องแยกข้อมูลแต่ละตัวออกจากกันด้วยช่องว่าง
    • ข้อมูลทั้ง 3 ค่าที่ป้อน จะถูกนำมาจัดเก็บในตัวแปรทั้ง 3 ตัวตามลำดับก่อนหลัง
slide6
cin
  • Example - การรับอินพุทต่อเนื่อง
cin get
cin.get()
  • ใช้รับค่าอักขระ 1 ตัวอักษร ซึ่งรวมไปถึงช่องว่าง (whitespace) ต่างๆ
  • รูปแบบการใช้งานคือ

char ch;

cin.get(ch);

    • รับค่าอักขระ 1 ตัวแล้วนำค่าที่ได้ไปเก็บไว้ที่ตัวแปรชนิดcharที่ชื่อว่าch

cin.get();

    • รอรับอักขระจากคีย์บอร์ด แต่ไม่ได้นำไปใช้งานต่อ
    • ใช้ในกรณีที่อยากให้โปรแกรมหยุดรอการตอบสนองจากผู้ใช้
  • ยังมีรูปการใช้งานแบบอื่นๆ ที่ใช้กับข้อมูลประเภทตัวแปรชุด (array) ซึ่งจะได้มีการกล่าวถึงในโอกาสต่อไป
c in and string
cin and string
  • โดยทั่วไปเราสามารถใช้cin>>varกับตัวแปรชนิดข้อความ (string) ได้เช่นกัน แต่โปรแกรมจะตัดข้อความทันทีเมื่อพบช่องว่าง
cin and string
cin and string
  • หากต้องการรับข้อความทั้งหมด รวมถึงช่องว่างต่างๆ ต้องอาศัยคำสั่งgetline() ซึ่งมีรูปแบบการใช้งานดังนี้

string string_variable;

getline(cin, string_variable);

cin and string1
cin and string
  • ตัวอย่าง
slide11
cout
  • แสดงผลออกทางหน้าจออุปกรณ์คอมพิวเตอร์
  • รูปแบบพื้นฐานในการใช้งาน

cout<< “STRING 1” << (Math Exp) << “STRING 2”;

    • STRING- ข้อความ (string) ซึ่งอยู่ภายใต้เครื่องหมาย“”เช่น

“This is a good day to program”<< “, “ << “let’s do it !”

“C++ programming is way too easy\n\t I want to try .NET programming!!!”

“I love \”C++\” and I am going to get \’A\’ for sure“

หรือendl(new line)

    • (Math Exp) - ตัวแปร หรือชุดคำสั่งที่ใช้คำนวณทางคณิตศาสตร์ เช่น

a%3

pow(2, sqrt(1/x))

exp(4*a*b) + 4*sin(2*PI*f*t)

slide12
cout
  • Example - การแสดง output แบบต่อเนื่องด้วย left-shift (<<)
stream manipulators
Stream Manipulators
  • การกำหนดรูปแบบการแสดงผลของcoutเช่น
    • รูปแบบการแสดงผลของข้อมูลจำนวนเต็มในรูปเลขฐานต่างๆ
    • ความละเอียด (precision) ของข้อมูลจำนวนทศนิยม
    • กำหนดความกว้างของช่องว่างประกอบการแสดงผล
  • การแสดงเลขฐาน (Base)
    • อาศัยคำสั่ง และค่าคงที่ซึ่งมีการกำหนดไว้ใน header file ชื่อ iomanip
    • hex(base 16) - hexadecimal
    • oct(base 8) - octal
    • dec(base 10) – decimal
    • setbase(base_number) - กำหนดรูปแบบเลขฐานตามbase_number
      • base_number - มีค่าได้เพียง 8, 10 และ 16
stream manipulators1
Stream Manipulators
  • การแสดงเลขฐาน(ต่อ)
stream manipulators2
Stream Manipulators
  • ความละเอียดการแสดงผลข้อมูลทศนิยม (floating-point precision)
    • ควบคุมจำนวนตัวเลขด้านขวาของจุดทศนิยม

cout.precision(precision_number)

stream manipulators3
Stream Manipulators
  • ความละเอียดการแสดงผลข้อมูลทศนิยม (ต่อ)

setprecision(precision_number)

stream manipulators4
Stream Manipulators
  • กำหนดขนาดช่องว่างประกอบการแสดงผล(field width)
    • กำหนดจำนวนหลักในการแสดงผลโดยจะแสดงผลชิดขวา (right justified)

cout.width(number_of_column)

stream manipulators5
Stream Manipulators
  • กำหนดขนาดช่องว่างประกอบการแสดงผล(ต่อ)

setw(number_of_column)

stream format states
Stream Format States
  • เป็นการกำหนดรูปแบบการแสดงผลได้โดยอาศัยflagชนิดต่างๆ

cout.setf(flag); หรือsetiosflags(flag);

stream format states1
Stream Format States
  • การแสดงเลขศูนย์ต่อท้ายและจุดทศนิยม
    • โดยทั่วไปcoutจะไม่แสดงเลขศูนย์ และจุดทศนิยมของจำนวน 88.0
    • หากต้องการให้แสดงค่า 88.0000 จำเป็นต้องกำหนดios::showpoint
stream format states2
Stream Format States
  • การแสดงผลแบบชิดซ้ายและชิดขวา
    • หากมีการกำหนดช่องว่างในการแสดงผล โดยปกติการแสดงข้อความต่างๆจะอยู่ในรูปแบบชิดขวา ซึ่งเปรียบเทียบเหมือนกับการใช้งานios::right, ios::adjustfield
    • การแสดงผลชิดซ้าย ต้องกำหนดค่า ios::left, ios::adjustfield
stream format states3
Stream Format States
  • การเติมอักขระให้เต็มพื้นที่แสดงผล (padding)

cout.fill(char); หรือsetfill(char);

    • char - อักษรที่ต้องการนำมาเติมด้านซ้ายหรือด้านขวาของการแสดงผล
    • หากไม่มีการกำหนด character คำสั่งจะใช้ช่องว่าง (space) ในการเติมเต็ม
stream format states4
Stream Format States
  • การแสดงข้อมูลตัวเลขรูปแบบวิทยาศาสตร์(scientific notation)
    • อาศัยios::scientific และios::fixed ซึ่งเป็นสมาชิกภายใต้ios::floatfield
    • cout.setf(0, ios::floatfield); จะถูกใช้เมื่อต้องการให้กลับไปใช้รูปแบบการแสดงผลตามปกติ (เหมือนก่อนที่จะมีการเปลี่ยนแปลง)
c style output using printf
C-Style Output using printf()
  • ยังมีโปรแกรมที่เขียนโดย C++ จำนวนหนึ่งยังอาศัยการแสดงข้อมูลแบบที่มีการใช้งานในภาษาCโดยอาศัยคำสั่งprintf()
  • การกำหนดรูปแบบการแสดงผลในคำสั่งprintf() จะอาศัยสิ่งที่เรียกว่าformat control string
  • รูปแบบการใช้งานprintf()

printf(format_control_str, other-args);

c style output using printf1
C-Style Output using printf()
  • การกำหนดรูปแบบการแสดงผลด้วย format control string
c style output using printf2
C-Style Output using printf()
  • การกำหนดรูปแบบการแสดงผลด้วย format control string (ต่อ)
c style output using printf3
C-Style Output using printf()
  • ตัวอย่าง - การแสดงตัวเลขจำนวนเต็มชิดขวา
c style output using printf4
C-Style Output using printf()
  • ตัวอย่าง - การกำหนดความละเอียดให้จำนวนเต็มและทศนิยม
summary
Summary
  • C++อาศัยคำสั่งcinและcoutในการนำข้อมูลเข้าและแสดงข้อมูลตามลำดับ โดยคำสั่งเหล่านี้ถูกเก็บอยู่ใน header file ชื่อiostream
    • cinใช้งานร่วมกับ stream extractor operator (>>)
    • coutใช้งานร่วมกับ stream insertion operator(<<)
  • cin.get() จะใช้ในการดึงข้อมูลอักขระทีละ 1 ตัวอักษร
  • getline()ใช้ในการดึงข้อความได้เช่นเดียวกับcinแต่จะไม่หยุดการทำงานเมื่อพบช่องว่าง (whitespace)
    • ดึงข้อความได้เป็นประโยค รวมทั้งช่องว่างต่างๆด้วย
summary1
Summary
  • coutใช้stream manipulatorหรือstream format statesในการกำหนดรูปแบบการแสดงผลลักษณะต่างๆ
    • รูปแบบต่างๆได้ถูกกำหนดไว้ใน header file ชื่อiomanip
    • Stream format states นั้นถูกกำหนดอยู่ในลักษณะของflagที่กำหนดใช้งานด้วยคำสั่งcout.setf(flag)หรือsetiosflags(flag)
  • การแสดงผลแบบภาษาCจะอาศัยคำสั่งprintf() โดยจะอาศัยformat control stringในการกำหนดรูปแบบการแสดงผล
    • การเลือกใช้control characterต้องเลือกใช้งานให้สอดคล้องกับข้อมูลที่ต้องการแสดงผล
reference links
Reference Links
  • Tenouk’sProgramming Tutorials:
    • C Formatted I/O Programminghttp://www.tenouk.com/Module5.html
    • C++ Stream Formatted I/Ohttp://www.tenouk.com/Module18.html