EECE.2160 ECE Application Programming

Slides:



Advertisements
Similar presentations
Character Arrays (Single-Dimensional Arrays) A char data type is needed to hold a single character. To store a string we have to use a single-dimensional.
Advertisements

CSCI 171 Presentation 12 Files. Working with files File Streams – sequence of data that is connected with a specific file –Text Stream – Made up of lines.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Introduction Data files –Can be created, updated,
Files Programs and data are stored on disk in structures called files Examples Turbo C++ - binary file Word binary file lab1.c - text file lab1.data.
Lone Leth Thomsen Input / Output and Files. April 2006Basis-C-8/LL2 sprintf() and sscanf() The functions sprintf() and sscanf() are string versions of.
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.
22. FILE INPUT/OUTPUT. File Pointers and Streams Declarations of functions that perform file I/O appear in. Each function requires a file pointer as a.
 2007 Pearson Education, Inc. All rights reserved C File Processing.
1 Lecture09: File I/O 5/6/2013 Slides modified from Yin Lou, Cornell CS2022: Introduction to C.
File IO and command line input CSE 2451 Rong Shi.
ECE 103 Engineering Programming Chapter 44 File I/O Herbert G. Mayer, PSU CS Status 6/4/2014 Initial content copied verbatim from ECE 103 material developed.
1 Lecture09: File I/O 11/19/2012 Slides modified from Yin Lou, Cornell CS2022: Introduction to C.
Chapter 12 Files (reference: Deitel ’ s chap 11) chap8.
Using Files Declare a variable, called file pointer, of type FILE * Use function fopen to open a named file and associate this file with the file pointer.
CS 261 – Recitation 7 Spring 2015 Oregon State University School of Electrical Engineering and Computer Science.
GAME203 – C Files stdio.h C standard Input/Output “getchar()”
Files A collection of related data treated as a unit. Two types Text
Files. FILE * u In C, we use a FILE * data type to access files. u FILE * is defined in /usr/include/stdio.h u An example: #include int main() { FILE.
Real Numbers Device driver process within the operating system that interacts with I/O controller logical record 1 logical record 2 logical record 3.
ECE Application Programming
ECE Application Programming
ECE Application Programming
ECE Application Programming
Chapter 4 File Processing
ECE Application Programming
Chapter 22 – part a Stream refer to any source of input or any destination for output. Many small programs, obtain all their input from one stream usually.
ECE Application Programming
ECE Application Programming
ECE Application Programming
Chapter 18 I/O in C.
CS 261 – Recitation 7 Fall 2013 Oregon State University
Plan for the Day: I/O (beyond scanf and printf)
CSE1320 Files in C Dr. Sajib Datta
CSE1320 Files in C Dr. Sajib Datta
Programming in C Input / Output.
Files I/O, Streams, I/O Redirection, Reading with fscanf
CSE1320 Files in C Dr. Sajib Datta
CSC215 Lecture Input and Output.
File Input and Output.
File Handling.
EECE.2160 ECE Application Programming
Line at a time I/O with fgets() and fputs()
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
EPSII 59:006 Spring 2004.
FILE handeling.
Module 12 Input and Output
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
CSc 352 File I/O Saumya Debray Dept. of Computer Science
EECE.3170 Microprocessor Systems Design I
EECE.2160 ECE Application Programming
EECE.2160 ECE Application Programming
Professor Jodi Neely-Ritz University of Florida
I/O CS580U - Fall 2018.
Presentation transcript:

EECE.2160 ECE Application Programming Instructors: Dr. Lin Li & Dr. Michael Geiger Spring 2019 Lecture 34: Character & line I/O

ECE Application Programming: Lecture 34 Lecture outline Announcements/reminders Program 8 due 5/3 Program 9 (extra credit) due 5/8 Course evaluations to be posted online; returned at final exam Final exam: Tue, 5/7, 3-6 PM, Ball 210 Today’s class Review: binary file I/O Character & line I/O 8/23/2019 ECE Application Programming: Lecture 34

ECE Application Programming: Lecture 33 Review: File I/O Open file: FILE *fopen(filename, file_access) Returns NULL if file can’t be opened Close file: fclose(file_handle) Formatted I/O: fprintf(file_handle, format_specifier, 0+ variables) fscanf(file_handle, format_specifier, 0+ variables) 8/23/2019 ECE Application Programming: Lecture 33

ECE Application Programming: Lecture 33 Review: Generic I/O Three special I/O streams in C stdin: standard input stdout: standard output stderr: standard error stream printf(“Hello\n”) == fprintf(stdout, “Hello\n”); scanf(“%d”, &x) == fscanf(stdin, “%d”, &x); Can write generic functions that deal either with specific file or standard input/output 8/23/2019 ECE Application Programming: Lecture 33

Review: binary file I/O size_t fwrite(pointer, element size, # elements, file_handle) size_t fread(pointer, element size, # elements, file_handle) pointer: address of data to be read/written Typically an array, although can be scalar element size: Size of each element in array # elements: Number of elements in array file_handle: is address returned by fopen() Returns # of elements actually read/written If < # elements requested, either error or EOF 8/23/2019 ECE Application Programming: Lecture 34

Review: binary file I/O (cont.) One benefit—ability to read/write entire array at once For example: Given int x[100]; Can read array from file pointed to by fp: n = fread(x, sizeof(int), 100, fp); n should equal 100 Can write array to file pointed to by fp: fwrite(x, sizeof(int), 100, fp); 8/23/2019 ECE Application Programming: Lecture 34

Review: End of file/error Two ways to check for end of file: Text files: Check if fscanf() == EOF More common: do fscanf() as part of loop condition, and continue while EOF not reached e.g. while (fscanf(fp, “%d”, &y) != EOF) Binary files: feof(file_handle); Note: both functions indicate EOF after failed read operation Must try to read data and discover that there’s nothing to read before testing for EOF Checking for error (binary only): ferror(file_handle); 8/23/2019 ECE Application Programming: Lecture 34

ECE Application Programming: Lecture 34 Character I/O Output functions: send single character to output stream (fputc(), putchar()) Not significantly different than using printf()/fprintf() Input functions Read single character from input int fgetc(FILE *stream); int getchar(); Macro: #define getchar() fgetc(stdin) Return last character to input int ungetc(int c, FILE *stream); 8/23/2019 ECE Application Programming: Lecture 34

ECE Application Programming: Lecture 34 Common uses Read input character-by-character until EOF while ((ch = fgetc(fp)) != EOF) { … } Read character until it does not match format Example: read digits until first non-digit encountered while (isdigit(ch = fgetc(fp))) { … } ungetc(ch, fp); 8/23/2019 ECE Application Programming: Lecture 34

ECE Application Programming: Lecture 34 Line I/O Output functions (puts(), fputs()) Not significantly different than using printf()/fprintf() Input functions Could use scanf(“%[^\n]", str); Read line from stream: char *fgets(char *s, int n, FILE *stream); fgets() can limit # characters read Automatically null terminates, so it will read up to n-1 characters Will read newline 8/23/2019 ECE Application Programming: Lecture 34

ECE Application Programming: Lecture 34 Examples Show the output of the following short program Input: Test Input 1 23 4 5\n void main() { char c; char buffer[50]; int i; i = 0; while ((c = fgetc(stdin)) != '\n') { if (c != ' ') { buffer[i++] = c; } buffer[i] = '\0'; fputs(buffer, stdout); Output: TestInput12345 8/23/2019 ECE Application Programming: Lecture 34

ECE Application Programming: Lecture 34 Examples (cont.) Input: Test1 Test 2 abcdefghijklmnopqrstuvwxyz This is a test of the fgets() function void main() { char str[25]; int i; for (i = 0; i < 5; i++) { fgets(str, 24, stdin); strcat(str, "\n"); fputs(str, stdout); } Output: Test1 Test 2 abcdefghijklmnopqrstuvw xyz This is a test of the f 8/23/2019 ECE Application Programming: Lecture 34

ECE Application Programming: Lecture 34 Examples (cont.) Output: n = 1024, n * 2 = 2048 buffer = Some other stuff Input: 1024Some other stuff void main() { char c; char buffer[50]; int n = 0; // isdigit in <ctype.h> while (isdigit(c = getchar())) { n = n * 10 + (c - 48); // Hint: '0' = 48 } // (ASCII value) ungetc(c, stdin); fgets(buffer, 50, stdin); printf("n = %d, n * 2 = %d\n", n, n * 2); printf("buffer = %s\n", buffer); } 8/23/2019 ECE Application Programming: Lecture 34

ECE Application Programming: Lecture 34 Next time Exam 3 Preview Reminders: Program 8 due 5/3 Program 9 (extra credit) due 5/8 Course evaluations to be posted online; returned at final exam Final exam: Tue, 5/7, 3-6 PM, Ball 210 8/23/2019 ECE Application Programming: Lecture 34