Upload
others
View
23
Download
0
Embed Size (px)
Citation preview
Работа с текстови файлове
Калин Георгиев
5 януари 2016 г.
Калин Георгиев Увод в програмирането 5 януари 2016 г. 1 / 15
Файлове
Файлове
Калин Георгиев Увод в програмирането 5 януари 2016 г. 2 / 15
Файлове
“Физически” файлове
Калин Георгиев Увод в програмирането 5 януари 2016 г. 3 / 15
Файлове
“Физически” файлове
Калин Георгиев Увод в програмирането 5 януари 2016 г. 4 / 15
Файлове
“Логически” файлове
Калин Георгиев Увод в програмирането 5 януари 2016 г. 5 / 15
Файлове
Данни във файл vs. данни в паметта
• персистентни• бавни• големи обеми
• до приключване на програмата• бързи• по-ограничени обеми
int i;int intarr [100];Student student;Student studentarr [100];
Калин Георгиев Увод в програмирането 5 януари 2016 г. 6 / 15
Файлове
Данни във файл vs. данни в паметта
• персистентни• бавни• големи обеми
• до приключване на програмата• бързи• по-ограничени обеми
int i;int intarr [100];Student student;Student studentarr [100];
Калин Георгиев Увод в програмирането 5 януари 2016 г. 6 / 15
Файлове
Работа с файлове: трансфер на данни междуоперативната памет и постоянната памет
Калин Георгиев Увод в програмирането 5 януари 2016 г. 7 / 15
Текстови файлове
Текстови файлове
Калин Георгиев Увод в програмирането 5 януари 2016 г. 8 / 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
Текстови файлове
Изход на конзолата
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
Текстови файлове
Изход в текстов файл
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
Текстови файлове
Вход от конзолата
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
Текстови файлове
Вход от текстов файл
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
Текстови файлове
Вход/изход от текстов файл
• последователно четене и писане• достъп до елемент по индекс?• изтриване на елемент?
Калин Георгиев Увод в програмирането 5 януари 2016 г. 14 / 15
Текстови файлове
Благодаря за вниманието!
Калин Георгиев Увод в програмирането 5 януари 2016 г. 15 / 15