C C T B H P N

Lecture #23 - std::iostreams with Examples

Input and Output

Web Resources:

CppCon - 2014, Going Native 2013
Herb Sutter's Blog, Herb Sutter on C++11, Herb Sutter keynote - Going Native 2012
Scott Meyer's Blog, S.M. on thread suspension, S.M.: C++11 Sampler
Stroustrup's Home Page
Code Project, Boost Library
Excellent C++ Q&A, Excellent reference - CppReference.com, CPlusPlus.com, C++ TechLinks

Content:

This lecture covers iostreams, an object oriented implementation of a library supporting program input and output.
  1. Syllabus
    Describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects.
  2. Projects:

    Project #3 - Code Publisher Client Project3HelpS2019 - includes:
    Client-Channel-Server Diagram
    Diagram showing use ofC++\CLI translater between WPF (C#) GUI and C++ Comm Channel. Prototype GUI for Project #3
    Demonstrating Requirements with a GUI
    The projects, below, are intended to help with Project #4. They are included so we can peek ahead to see where we need to go with Project #4. Project4Help WPF
    Illustrates techniques used for WPF to use Comm via C++\CLI. Prototype GUI for Project #3
    Uses C++\CLI translator to interoperate with C++ Comm to navigate a remote directory tree.
    Project #4 - Remote Code Page Management Project4HelpS2019 - includes: Client-Channel-Server Diagram
    Diagram showing use ofC++\CLI translater between WPF (C#) GUI and C++ Comm Channel. Interop Help Demo class diagram, Interop Help Demo code
    Shows how to implement interoperation between C# and C++ as simply as practical. Creating C++\CLI Projects, pptx
    Mock Channel block diagram, Mock Channel
    Illustrates how to use .Net threads in a managed layer and C++ threads in a native layer. Communication Channel Structure
    Diagrams that show how asynchronous message passing communication works. Communication Channel Class Diagram
    Class diagram of our protype communication channel. Communication Channel Activities
    Activity diagram showing message flow through the communcation channel. CppCommWithFileXfer - Communication Channel Code
    Here's code you can use to implement message-passing communication. Project4HelpWPF code demo
    A getting-started GUI prototype that shows one way to build a client for Project #4. C++ Repository with WPF GUI - code demo
    This demo illustrates use of User Controls as well as remote directory navigation.
  3. C++ Streams Library and Code Examples:

    iostreams presentation, ppt
    This presentation discusses the iostream hierarchy and the role of each of many of its classes.
    iostreams reference, doc
    The reference presents class relationships and interface details.
    iostreams code examples
    Illustrates stream formatting, buffering, opening for reading and writing, and use of stringstreams.
    Stream Iterators
    A short example demonstrating input and output stream iterators. Adapting Comm to use std::ostream interface, Code Folder
  4. Executable Specifications:

    Executable Specifications, pptx
    This is a presentation related to a project that was part of an earlier semester. You may find it worth looking over.
  5. C++ Exceptions:

  6. Thread Locking Performance
  7. Thinking about Software Design:

    Software Design Blog
    Summary of fundamental ideas. Object Oriented Design Blog
    Essential features of Object Oriented Design. Software Design Principles
    SRP, LSP, OCP, DIP, and ISP Software Design, ppt
    Broad survey of ideas with examples Design Strategies, pptx
    Summarizes design issues for modules and classes. Design Guidelines, pptx
    Design rules and idioms that transcend Object Oriented Design.
  8. Common C++ Problems, pptx
  9. Fragile Designs, pptx
CST strip