Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_kollokvium_l_20_21 (1).docx
Скачиваний:
3
Добавлен:
24.08.2019
Размер:
41.63 Кб
Скачать
  1. Как передать имя файла в качестве параметра функции main()? (л.20, примеры 5, 12)

#include <stdio.h>

#include "fail_1.cpp"

void func (char*, char*) {};

int main(){

func ("ima_faila", "ima_strukt");

return 0;

}

fun(FILE *f, MYSTRUCT *p)

{

....

}

main()

{ MYSTRUCT s; FILE *F;

...

F = fopen(name, "r");

...

fun(F, &s);

}

  1. Как сохранить при обработке файла невидимые символы и отредактировать их? (л.20, пример 6)

  1. Как передать файл в функцию? (л.20, пример 7) примеры стр.2-3

int write_to_text_file (ofstream& );

int read_text_file(ifstream&);

const int len = 81;

int main()

{char *filename = "qqqqq.txt";

ofstream fout (filename, ios::out ); //ofstream fout;

//fout.open(filename, ios::out );

if (!fout) {

cout << "Error" << endl; _getch();

return 1;

}

write_to_text_file (fout);

fout.close();

ifstream fin (filename, ios::in );

if (!fin) {

cout << "Error" << endl; _getch();

return 1;

}

read_text_file(fin);

_getch(); return 0; }

(Вывод в файл)

int write_to_text_file (ofstream & fout)

{ char line[len];

cout <<"line or Ctrl+z? :"<< endl;

while (cin.getline (line, len)) {

fout << line ;

fout.put ('\n'); }

return 0;

}

(Чтение из файла)

int read_text_file (ifstream & fin)

{ char line[len];

while (!fin.eof()) {

fin >> line;

if (fin.eof()) break;

cout << line << endl;

}

return 0;

}

  1. Как сделать массив файлов и записать туда что-то? (л.20, пример 8) примеры стр.17

(Функция заполнения массива структур из файла)

int fill_record(ifstream &fin, Man* dbase)

{ // dbase – массив структур для хранения всей базы

int i =0;

char buf[l_buf]; //строка для считывания из файла

while(fin.getline(buf,l_buf)&& i<l_dbase ) {

strncpy (dbase[i].name, buf, l_name); //заполнение элемента dbase

dbase[i].name[l_name] = '\0';

dbase[i].birth_year = atoi(&buf [l_name]);

dbase[i].pay = atof(&buf [l_name+l_year]);

i++;

}

if (i>=l_dbase) return -1;

return i-1; //количество считанных из файла записей

}

  1. Как определить количество записей в бинарном файле и выполнить их корректировку? (л.20, пример 14)

При каждом запуске программы мы открываем файл для определения количества записанных в него записей, и в последующую будем записывать структуру с новыми полученными параметрами...

/---получение количества записей в файле---------------------------

FILE* f = fopen("file.bin", "rb");

for (int i=1; i<=10000; i++)

{

fread((char*)&X, sizeof(X[0]), i, f);

if (X.W == 0)

{

quantity = i;

break;

}

}

fclose(f);