Lecture 23 _4/5_Kailu Song
Review for exam 2,students could ask question 1.read file FILE *fptr;
fptr = fopen(filename,"rb");
int a;
double b;
fread(&a,sizeof(int),1,fptr);
fread(&b,sizeof(double),1,fptr);
Person P;
fread(&P,sizeof(Person),1,fptr);
int arr[10];
fread(arr,sizeof(int),10,fptr);
int ch;
ch = fgetc(fptr);
char = oneline[256];
fets(oneline,256,fptr);
(stop at '\n', or reach the limit'\o');
int a,b;
fscanf(fptr,"%d %d", &a,&b);
strlen not include '\o';
strcpy,strstr,strcat;
2.linklist with n nodes sorted,insert one more value
3, three outcomes:1.file;2.structure;3.dynamic structure(linked list);
Contents
========================================
Shiyu Wang Lec23 April 8th
Review for Exam2
randon access
arr[5]
arr[29]
FILE* fptr;
fptr = fopen(filename,"rb");
(binary)
int a;
double b;
fread(&a,sizeof(int),1 fptr);
fread(&b,sizeof(double),1,fptr);
int ch;
ch=fgetc(fptr);
char oneline[256];
fgets(oneline,256,fptr);
(it will stop at'\n'
or reach the limit'\0')
How to use strcpy, strstr, strcat
=======
Kevin Tan(0023987592), section#2 notes 04/05
random access
arr[5]; arr[9];
FILE *fp= NULL; fp = fopen(filename,"rb");
int a; double b; fread(&a,sizeof(int),1,fp); fread(&b,sizeof(double),1,fp); . . fscanf(fp,"%d%d",&a,&b);
Wudi Zhou, Professor Lu's section, April 9th
Exam 2 covers: File I/O, Structure, Dynamic Structure,recursive
FILE * fptr; fptr = fopen(filename,"rb"); int a; double b; fread(&a, sizeof(int),1,fptr); fread(&b,sizeof(double),1,fptr);
fptr = fopen(filename,"b"); ch = fgetc(fptr); char oneline[256]; gets(oneline,256,fptr);
fscanf(fptr,"%d", &a);/*return 1 if successful*/ fscanf(fptr,"%d",&a, &b); /*return 2 if both successful*/
Person P; fread(&p, sizeof(person),1,fptr); int arr[10]; fread(arr,sizeof(int),10,fptr); fwrite(&p,sizeof(person),1,fptr);
Hanye Xu April 10
Exam 2 covers file input and file output fread and fsanf are not the same
fptr = fopen(filename,"rb");
int a;
double b;
fread(&a,sizeof(int),1,fptr);
fread(&b,sizeof(double),1,fptr);
Person P;
fread(&P,sizeof(Person),1,fptr);
int arr[10];
fread(arr,sizeof(int),10,fptr);
int ch;
ch = fgetc(fptr);
char = oneline[256];
fets(oneline,256,fptr);
(stop at '\n', or reach the limit'\o');
int a,b;
fscanf(fptr,"%d %d", &a,&b);
strlen not include '\o';
strcpy,strstr,strcat;
Lecture 0406 Huayi Guo taught by Niklas Nlmqvist /*
lecture0406 Anouncement: Final exam Sat , May 5 8am-10am the location may not hold. And the exam will most likely be electronics.
- /
void Putcell(int x, int y, char c, int dim, char* block) {
block[(y*dim)+x] =c;
}
int visitCell(int x,int y, int dim, char* block)
{
//drop the breadcrumb! putCell(x, y, "*", dim, data); //check neighbors; int count = 1; if(getcell(x-1, y, dim, data) =="1"){ count += visitCell(x -1; y, dim, data): } if(getcell(x+1, y, dim, data) =="1"){ count += visitCell(x +1; y, dim, data): } if(getcell(x, y-1, dim, data) =="1"){ count += visitCell(x ; y-1, dim, data): } if(getcell(x, y+1, dim, data) =="1"){ count += visitCell(x ; y+1, dim, data): }
}
int isconnected(int dim, char *block) {
char *data = strdup(block); int x =0; int y=0; while(getCell(x, y dim, block) != '1'){ x++;
if(x>= dim){ y++; x=0; }
} //REcursively visit each cell int numConnected = visitCell(x, y, dim, data); free(data); return numConnected = dim;
}
int getcell(int x, int y, int dim, char *block) {
if(x<0 || x>=dim ||y<0 ||y>dim) return 0; return block[()]
}
int countones(int dim, char * block) {
int i; int counter = 0; for(i =0; i < dim* dim; i++) { if( block[i] == '1'){
counter ++; }
} return counter;
}
int main()
{
//check the command if(argc != 2) { } //open the file //initalization const int BUFFE_LENGTH =101; char buffer[]; int valid = 0; int invalid = 0; while (fgets(buffer, BUFFER_LENGTH, buffer) != NULL){ //consume any terminating newline
if(buffer[strelen(buffer)-1] =='\n') { buffer[strlen(buffer) -1] ='\0'; }
//Figure out the dimeconsion of the block int dim = sqrt(strlen(buffer));
// Rule 1: check that the dimension is valid if(dim * dim != strlen(buffer)){//if not n^2 then this one is invalid
invalid++;
continue; // stops the loop and goes to next iteration //break, while stop the entire loop
}
//Rule2 L check number of ones if(countones(dim, buffer) != dim) { invalid ++; continue; }
//Rule3 : important! and hard! if(!isConnected(dim, buffer)){
invalid ++; continue ;
}
//Rule4: for a zero, there should be no more than 1 neighbor that is 1??
}
//DFS
//Depth-first search
//BFS
//breadth first search
===================
Rohan Khante
====================
exam review IMP- FREAD AND FSCANF are NOT the SAME
fptr = fopen(filename,"rb");
int a;
double b;
fread(&a,sizeof(int),1,fptr);
fread(&b,sizeof(double),1,fptr);
Person P;
fread(&P,sizeof(Person),1,fptr);
int arr[10];
fread(arr,sizeof(int),10,fptr);
int ch;
ch = fgetc(fptr);
char = oneline[256];
fets(oneline,256,fptr);
(stop at '\n', or reach the limit'\o');
int a,b;
fscanf(fptr,"%d %d", &a,&b);
strcpy,strstr,strcat; Strlen strstr and strcat were discussed NOTE- strlen DOES NOT include the termination character '\0'. so strlen performed on string have abc will return THREE
strstr- return a pointer to the first occurence of str2 in str1 or a null pointer if not found
strcat = concatenation function for strings.
strcat("ece","264") will return ece264 string
NOTE2= all these functions are in string.h and this should be included in the header.
- include <string.h>