16
Работа с текстови файлове Калин Георгиев 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

  • Upload
    others

  • View
    23

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Работа с текстови файлове

Калин Георгиев

5 януари 2016 г.

Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Page 2: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Файлове

Файлове

Калин Георгиев Увод в програмирането 5 януари 2016 г. 2 / 15

Page 3: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Файлове

“Физически” файлове

Калин Георгиев Увод в програмирането 5 януари 2016 г. 3 / 15

Page 4: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Файлове

“Физически” файлове

Калин Георгиев Увод в програмирането 5 януари 2016 г. 4 / 15

Page 5: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Файлове

“Логически” файлове

Калин Георгиев Увод в програмирането 5 януари 2016 г. 5 / 15

Page 6: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Файлове

Данни във файл vs. данни в паметта

• персистентни• бавни• големи обеми

• до приключване на програмата• бързи• по-ограничени обеми

int i;int intarr [100];Student student;Student studentarr [100];

Калин Георгиев Увод в програмирането 5 януари 2016 г. 6 / 15

Page 7: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Файлове

Данни във файл vs. данни в паметта

• персистентни• бавни• големи обеми

• до приключване на програмата• бързи• по-ограничени обеми

int i;int intarr [100];Student student;Student studentarr [100];

Калин Георгиев Увод в програмирането 5 януари 2016 г. 6 / 15

Page 8: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Файлове

Работа с файлове: трансфер на данни междуоперативната памет и постоянната памет

Калин Георгиев Увод в програмирането 5 януари 2016 г. 7 / 15

Page 9: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Текстови файлове

Текстови файлове

Калин Георгиев Увод в програмирането 5 януари 2016 г. 8 / 15

Page 10: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Текстови файлове

struct Student

struct Student{

int fn;char name [100];double grade;// others

};

Stu

dent

fn:int

name: char[100]

grade:double

etc …

sizeof (Student)

Калин Георгиев Увод в програмирането 5 януари 2016 г. 9 / 15

Page 11: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Текстови файлове

Изход на конзолата

Student students [100];//...for (int i = 0; i < 3; i++){

cout << students[i].fn<< "␣"<< students[i].name<< endl<< students[i].grade<< endl;

}

Калин Георгиев Увод в програмирането 5 януари 2016 г. 10 / 15

Page 12: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Текстови файлове

Изход в текстов файл

Student students [100];//...ofstream out_file ("myfile.txt");for (int i = 0; i < 3; i++){

out_file << students[i].fn<< "␣"<< students[i].name<< endl<< students[i].grade<< endl;

}

Калин Георгиев Увод в програмирането 5 януари 2016 г. 11 / 15

Page 13: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Текстови файлове

Вход от конзолата

Student students [100];//...for (int i = 0; i < 3; i++){

cin >> students[i].fn;cin.getline (students[i].name ,100);cin >> students[i]. grade;

}

44860 Калин Георгиев5.72 99878 Трифон Трифонов6.00 123445 Иван Петров5.50

Калин Георгиев Увод в програмирането 5 януари 2016 г. 12 / 15

Page 14: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Текстови файлове

Вход от текстов файл

Student students [100];//...ifstream in_file ("myfile.txt");for (int i = 0; i < 3; i++){

in_file >> students[i].fn;in_file.getline (students[i].name ,100);in_file >> students[i]. grade;

}

Калин Георгиев Увод в програмирането 5 януари 2016 г. 13 / 15

Page 15: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Текстови файлове

Вход/изход от текстов файл

• последователно четене и писане• достъп до елемент по индекс?• изтриване на елемент?

Калин Георгиев Увод в програмирането 5 януари 2016 г. 14 / 15

Page 16: Калин Георгиев 5 януари 2016 г. · 5 януари 2016 г. Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15

Текстови файлове

Благодаря за вниманието!

Калин Георгиев Увод в програмирането 5 януари 2016 г. 15 / 15