EECE.2160 ECE Application Programming

Slides:



Advertisements
Similar presentations
FILES Files types and operations. Files Files are used to store data Data can be Text (ASCII only: 0  127) Binary (Full range: 0  256) Each file resides.
Advertisements

CP104 Introduction to Programming File I/O Lecture 33 __ 1 File Input/Output Text file and binary files File Input/output File input / output functions.
ECE Application Programming Instructors: Dr. Michael Geiger & Nasibeh Nasiri Fall 2015 Lecture 31: Structures (cont.) Dynamic memory allocation.
Files A collection of related data treated as a unit. Two types Text
File Input/Output. File information Name z:\Visual Studio 2005\Projects\fileio\fileio\myinput.txt \\file-svr-1\class\ECE-160\pviall\myoutput.txt Read/Write.
ECE Application Programming
ECE Application Programming
ECE Application Programming
ECE Application Programming
ECE Application Programming
File Access (7.5) CSE 2031 Fall July 2018.
ECE Application Programming
File I/O.
CS111 Computer Programming
CSE1320 Files in C Dr. Sajib Datta
EECE.2160 ECE Application Programming
Programming in C Input / Output.
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Instructor: Dr. Michael Geiger Spring 2019 Lecture 13: Exam 1 Preview
Instructor: Dr. Michael Geiger Spring 2019 Lecture 4: Functions in C++
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Instructor: Dr. Michael Geiger Spring 2017 Lecture 12: Exam 1 Preview
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Presentation transcript:

EECE.2160 ECE Application Programming Instructor: Dr. Michael Geiger Fall 2018 Lecture 32: Finish PE3 File I/O

ECE Application Programming: Lecture 32 Lecture outline Remaining key dates W 12/5: Program 7 due M 12/10: Program 6 regrades due Th 12/13: last day of classes; Program 8 due P8 deals with file I/O (lectures 32-33) M 12/17: Exam 3, 3-6 PM (room TBD) Will post course evals online; you’ll submit eval at exam W 12/19: All code due by 12:00 PM (noon) Program 9: Worth up to 4 points extra credit on final avg Resubmission deadline for P7 & P8 Today’s class Finish PE4 (search functions) File I/O 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 Review: PE3 Given header files, main program Complete specified functions For the Name structure void printName(Name *n): Print the name pointed to by n, using format <first> <middle>. <last> void readName(Name *n): Prompt for and read a first, middle, and last name, and store them in the structure pointed to by n SINew functions on next slide 6/30/2019 ECE Application Programming: Lecture 32

Review: PE3 (continued) Given header files, main program Complete specified functions Name functions on previous slide For the SINew structure void printStudent(SINew *s): Print information about the student pointed to by s void readStudent(SINew *s): Prompt for and read information into the student pointed to by s void printList(SINew list[], int n): Print the contents of an array list that contains n StudentInfo structures int findByLName(SINew list[], int n, char lname[]): Search for the student with last name lname in the array list. Return the index of the structure containing that last name, or -1 if not found int findByID(SINew list[], int n, unsigned int sID): Search for the student with ID # sID in the array list. Return the index of the structure containing that last name, or -1 if not found 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 Name functions void printName(Name *n) { printf("%s %c. %s\n", n->first, n->middle, n->last); } void readName(Name *n) { char junk; printf("Enter name: "); scanf("%s %c%c %s", n->first, &n->middle, &junk, n->last); 6/30/2019 ECE Application Programming: Lecture 32

Single SINew functions void printStudent(SINew *s) { printName(&s->sname); printf("ID #%.8u\n", s->ID); printf("GPA: %.2lf\n", s->GPA); } 6/30/2019 ECE Application Programming: Lecture 32

Single SINew functions (cont.) void readStudent(SINew *s) { readName(&s->sname); printf("Enter ID #: "); scanf("%u", &s->ID); printf("Enter GPA: "); scanf("%lf", &s->GPA); } 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 printList() void printList(SINew list[], int n) { int i; // Loop index for (i = 0; i < n; i++) { printStudent(&list[i]); printf("\n"); } } 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 findByLName() int findByLName(SINew list[], int n, char lname[]) { int i; // Loop index // Search for student with matching name // in list for (i = 0; i < n; i++) { if (strcmp(lname, list[i].sname.last) == 0) return i; } // If end of loop reached, student wasn’t // found return -1; 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 findByID() int findByID(SINew list[], int n, unsigned int sID) { int i; // Loop index // Search for student with // matching ID in list for (i = 0; i < n; i++) { if (sID == list[i].ID) return i; } // If end of loop reached, student wasn’t // found return -1; 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 File information Files commonly used for input/output Interface uses FILE pointers FILE type defined in <stdio.h> Allows access to necessary file characteristics File characteristics include: Name—for example z:\Visual Studio 2010\Projects\fileio\fileio\myinput.txt Read/write permission Type (binary or ASCII text) Access (security; single/multiple user) Position in file Programmer doesn’t have to account for this info 6/30/2019 ECE Application Programming: Lecture 32

Basic file I/O functions Before reading/writing file, program must gain access to file fopen() function used to open file Returns FILE * if successful, NULL otherwise When done with file, program should close it fclose() function used to close file 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 fopen() FILE *fopen(char *fname, char *faccess) fname: name of file (e.g., "f1.txt") Name may require full path faccess: string providing First char: access mode r/w/a (read/write/append) Write starts at beginning of file, append starts at end Either write or append creates new file if none exists Additional (optional) char: file type b/t (binary/text) Text files are human readable (default--don’t need t) Binary files are just raw bytes Valid access strings: "r", "w", "a", "rb", "wb", "ab" 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 fopen() (continued) If successful, fopen() returns valid FILE * to be used with file read/write functions If unsuccessful, fopen() returns NULL Test this error condition to ensure file opened Why might fopen() be unsuccessful? Try to open input file that doesn’t exist Try to open read-only file for writing Try to open file that’s locked by another application 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 fopen() example FILE *fp; fp = fopen("in1.txt", "r"); if (fp == NULL) printf("Couldn’t open file\n"); else { … // FILE * is valid // Continue with program } 6/30/2019 ECE Application Programming: Lecture 32

File i/o function calls fclose(FILE *file_handle) Closes a file Argument is address returned by fopen() fclose(fp); Recommended for input files Required for output files OS often doesn’t write last bit of file to disk until file is closed 6/30/2019 ECE Application Programming: Lecture 32

Example of basic file function usage int main() { FILE *fp; // Open text file for reading fp = fopen("in.txt", "r"); if (fp == NULL) { printf("Error: could not open in.txt"); return 0; } ... // CODE TO EXECUTE IF FILE OPENS fclose(fp); // Close file when done 6/30/2019 ECE Application Programming: Lecture 32

File i/o function calls: formatted I/O fprintf(file_handle, format_specifier, 0+ variables) file_handle: address returned by fopen() Other arguments are same as printf() Example: fprintf(fp, "x = %d", x); fscanf(file_handle, format_specifier, 0 or more variables) Other arguments are same as scanf() Example: fscanf(fp, "%d%d", &a, &b); 6/30/2019 ECE Application Programming: Lecture 32

ECE Application Programming: Lecture 32 Next time Character and line I/O Reminders: remaining key dates W 12/5: Program 7 due M 12/10: Program 6 regrades due Th 12/13: last day of classes; Program 8 due P8 deals with file I/O (lectures 32-33) M 12/17: Exam 3, 3-6 PM (room TBD) Will post course evals online; you’ll submit eval at exam W 12/19: All code due by 12:00 PM (noon) Program 9: Worth up to 4 points extra credit on final avg Resubmission deadline for P7 & P8 6/30/2019 ECE Application Programming: Lecture 32