Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h> // для FILE
- #include <string>
- struct Data {
- std::string str;
- double *val;
- };
- int main() {
- Data *primary = new Data;
- primary->str = "TEST";
- primary->val = new double(99.99);
- FILE *fp;
- fp = fopen("buf.txt", "w");
- fwrite(primary, sizeof(Data), 1, fp); // запись.
- fseek(fp, 0, SEEK_END); // смещение в конец.
- fwrite(primary->val, sizeof(*primary->val), 1, fp); // запись содержимого указателя.
- fclose(fp);
- Data *secondary = new Data;
- fp = fopen("buf.txt", "r");
- fread(secondary, sizeof(Data), 1, fp); // чтение.
- secondary->val = new double; // выделяем новую память.
- fseek(fp, sizeof(Data), SEEK_SET); // смещение к началу содержимого указателя.
- fread(secondary->val, sizeof(*secondary->val), 1, fp); // чтение содержимого указателя.
- fclose(fp);
- // Проверка:
- if (std::strcmp(primary->str.c_str(), secondary->str.c_str()) == 0
- && *primary->val == *secondary->val)
- {
- // Ура! Все сошлось.
- return 0;
- }
- else {
- return 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement