add fileStruct overview
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
# 🧭 Topic: File & Struct
|
||||
|
||||
> [!info] **Quick Overview :**
|
||||
|
||||
|
||||
## 📌 Covered in This Topic
|
||||
- **What is a `struct`?**
|
||||
- Grouping related variables under one name
|
||||
- Difference between separate variables vs a structured type
|
||||
- **Why do we need structs?**
|
||||
- Modeling real-world entities (Student, Book, Point, Date, etc.)
|
||||
- Improving code readability and organization
|
||||
- Passing related data together to functions
|
||||
- **Defining a struct**
|
||||
- Basic syntax
|
||||
- Declaring variables of a struct type
|
||||
- Accessing members using the `.` operator
|
||||
- **Naming conventions**
|
||||
- Struct names (PascalCase or camelCase)
|
||||
- Member variable names (camelCase / snake_case)
|
||||
- **Methods (functions) inside structs**
|
||||
- Member functions
|
||||
- Difference between data members and behavior
|
||||
- When logic belongs inside the struct vs outside
|
||||
- **Constructors in structs**
|
||||
- Default constructor
|
||||
- Parameterized constructor
|
||||
- Initializing members properly
|
||||
- Why constructors are useful
|
||||
- **Nested structs**
|
||||
- Structs inside other structs (composition)
|
||||
- Modeling “has-a” relationships
|
||||
- Why a struct **cannot contain itself by value**
|
||||
- Infinite size problem
|
||||
- Using pointers to the same struct type (`Node* next`)
|
||||
- **Pointers to structs**
|
||||
- Creating structs on the heap using `new`
|
||||
- Accessing members with the `->` operator
|
||||
- Difference between `.` and `->`
|
||||
- Common mistakes (dangling pointers, forgetting `delete`)
|
||||
- **Passing structs to functions**
|
||||
- By value
|
||||
- By reference
|
||||
- By pointer
|
||||
- Performance and safety considerations
|
||||
- **Common examples and use cases**
|
||||
- Student records
|
||||
- Game objects
|
||||
- Linked list nodes
|
||||
- Configuration or settings data
|
||||
|
||||
- **Why do we need files?**
|
||||
- Data persistence (programs don’t lose data after closing)
|
||||
- Saving and loading program state
|
||||
- Working with large datasets
|
||||
- **File streams and buffers**
|
||||
- `ifstream`, `ofstream`, `fstream`
|
||||
- How buffering works (conceptual overview)
|
||||
- Difference between console I/O and file I/O
|
||||
- **Sequential File I/O**
|
||||
- Opening and closing files
|
||||
- File modes (`ios::in`, `ios::out`, `ios::app`, etc.)
|
||||
- Checking if a file is open
|
||||
- `is_open()` and error handling
|
||||
- Reading from files
|
||||
- `>>` operator
|
||||
- `getline()`
|
||||
- Reading line by line
|
||||
- Writing to files
|
||||
- Overwriting vs appending
|
||||
- Formatting output
|
||||
- **Formatted I/O**
|
||||
- Using `setw()`, `left`, `right`, `setprecision`
|
||||
- Writing aligned and readable data to files
|
||||
- **Converting file input**
|
||||
- Reading strings and converting to numbers
|
||||
- `stoi`, `stof`, `stod`, `stoll`
|
||||
- Handling invalid input safely
|
||||
- **Error handling and debugging**
|
||||
- Using `cerr` for error messages
|
||||
- Checking stream state (`fail()`, `eof()`)
|
||||
- **Reading structured data**
|
||||
- Reading struct data from files
|
||||
- Reading CSV-formatted files
|
||||
- Delimiters
|
||||
- Parsing lines manually
|
||||
- Common pitfalls
|
||||
- **Random access File I/O**
|
||||
- Concept of file cursor
|
||||
- `seekg()` and `tellg()`
|
||||
- When random access is useful
|
||||
- Limitations and typical use cases
|
||||
|
||||
|
||||
## 📑 Slides & Materials
|
||||
- 👨🏫 [Professor Slides (PDF)](01-topics/07-pointers/4-ProfessorSlides.md)
|
||||
- 🧑🏫 [TA Workshop Slides (PDF)](01-topics/07-pointers/5-TASlides.md)
|
||||
|
||||
---
|
||||
## 🛠️ Workshop & Assignments
|
||||
|
||||
- 🧮 [Assignments](2-Assignment.md)
|
||||
- ❓ [Q&A and Common Issues]()
|
||||
|
||||
---
|
||||
## 🌐 Additional Resources
|
||||
|
||||
|
||||
---
|
||||
## ⏩ Navigation
|
||||
|
||||
- ⬅️ [Previous : Functions 2 - Recursion](../06-functions-2/0-Overview.md)
|
||||
- ➡️ [Next Topic: File & Struct](../08-file-struct/0-Overview.md)
|
||||
|
||||
|
||||
---
|
||||
|
||||
> [!tip] **Tip :**
|
||||
>
|
||||
> If something doesn’t make sense — **don’t stay stuck alone**. Ask the TA to clarify it right away. Often, a quick question can save you a lot of time and frustration. Remember: if you’re confused, chances are others are too.
|
||||
|
||||
Reference in New Issue
Block a user