![]() |
ΠΟΛΥΤΕΧΝΕΙΟ
ΚΡΗΤΗΣ Τμήμα Ηλεκτρονικών Μηχ. και Μηχ. Υπολογιστών ΛΟΓ 102: Τεχνολογία Λογισμικού
Ι |
Το υλικό των φροντιστηριακών ασκήσεων που βρίσκεται σε αυτή τη σελίδα προετοιμάστηκε
από τους βοηθούς του μαθήματος, Φώτη Καζάση ()
και Κυριάκο Πούτο (fotis@ced.tuc.gr),
κατόπιν συνεννοήσεως με το διδάσκοντα.kyriakos@ced.tuc.gr
#include "stdio.h"
void main ()
{
FILE *fp1;
char oneword[100];
char c;
fp1 = fopen("\\PROJECTS\\TENLINES.TXT","rt");
do {
c = fscanf(fp1,"%s", oneword);
printf("%s\n", oneword);
} while (c != EOF);
fclose(fp1);
}
Εντοπισμός προβλήματος εμφάνισης επιπλέον γραμμών στην έξοδο. Λύση προβλήματος:
#include "stdio.h"
void main ( )
{
FILE *fp1;
char oneword[100];
char c;
fp1 = fopen("\\PROJECTS\\TENLINES.TXT","rt");
do {
c = fscanf(fp1,"%s", oneword);
if (c != EOF)
printf("%s\n", oneword);
} while (c != EOF);
fclose(fp1);
}
#include "stdio.h"
void main( )
{
FILE *fp1;
char oneword[100];
char *c;
fp1 = fopen("TENLINES.TXT","rt");
do {
c = fgets(oneword, 100 ,fp1);
if (c != NULL)
printf("%s", oneword);
} while (c != NULL);
fclose(fp1);
}
#include "stdio.h"
#include "string.h"
struct record {
char last_name[20];
char first_name[15];
int age;
};
typedef struct record person;
FILE *people;
void main ()
{
person employee;
people = fopen("PEOPLE.DAT", "wb");
strcpy(employee.last_name, "ΚΑΖΑΣΗΣ");
strcpy(employee.first_name, "ΦΩΤΗΣ");
employee.age = 33;
fwrite(&employee, sizeof(employee), 1, people);
strcpy(employee.last_name, "ΠΟΥΤΟΣ");
strcpy(employee.first_name, "ΚΥΡΙΑΚΟΣ");
employee.age = 28;
fwrite(&employee, sizeof(employee), 1, people);
strcpy(employee.last_name, "ΠΑΠΑΣΠΥΡΟΥ");
strcpy(employee.first_name, "ΝΙΚΟΣ");
employee.age = 30;
fwrite(&employee, sizeof(employee), 1, people);
fclose(people);
}
#include "stdio.h"
#include "string.h"
struct record {
char last_name[20];
char first_name[15];
int age;
};
typedef struct record person;
FILE *people;
void main ()
{
person employee;
people = fopen("PEOPLE.DAT", "rb");
while (!feof(people)) {
fread(&employee, sizeof(employee), 1, people);
printf("Surname..........: %s\n", employee.last_name);
printf("Given name.......: %s\n", employee.first_name);
printf("Age..............: %d years\n", employee.age);
}
fclose(people);
}
#include "stdio.h"
#include "string.h"
struct record {
char last_name[20];
char first_name[15];
int age;
};
typedef struct record person;
FILE *people;
void main ()
{
person employee;
int rec, result;
people = fopen("PEOPLE.DAT", "r+b");
printf("Which record do you want [0-2]? ");
scanf("%d", &rec);
while (rec >= 0) {
fseek(people, rec*sizeof(employee), SEEK_SET);
result = fread(&employee, sizeof(employee), 1, people);
if (result==1) {
printf("\nRECORD %d\n", rec);
printf("Surname..........: %s\n", employee.last_name);
printf("Given name.......: %s\n", employee.first_name);
printf("Age..............: %d years\n", employee.age);
}
else
printf("\nRecord %d not found!\n\n", rec);
printf("Which record do you want [0-2]? ");
scanf("%d", &rec);
}
fclose(people);
}
Επισήμανση δυνατότητας απομόνωσης της δήλωσης της δομής person
σε αρχείο header που γίνεται #include από τα αρχεία που την χρησιμοποιούν
(πλεονεκτήματα).
Νίκος Παπασπύρου (nickie@softlab.ntua.gr).
Τελευταία αλλαγή: 30/03/2000 22:09 .