Форум программистов, компьютерный форум CyberForum.ru

Правильно ли я записываю/ считываю ( принцип вроде да а реализовано УГ) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Слишком сложный код программы, ничего не понимаю( http://www.cyberforum.ru/cpp-beginners/thread1194072.html
Я искал код по этому заданию: "Имеется картографическая информация, представляющая собой серии пар целых чисел. Диапазон величин этих чисел 0-32737, т.е. для их размещения достаточно описания short. Каждая серия - это множество прямоугольных координат точек картографических объектов, например, рек, озер, домов и т.д. Принято называть такую серию точек, приближенно описывающих географический...
C++ Использовать функцию, возвращающую значение F (x) Здравствуйте! Построил программу, а не могу понять как выполнить следующее задание: в программе использовать функцию, возвращающую значение F(x). Подсажите, пожалуйста код и куда его вставить? #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; int main() { setlocale(LC_ALL, "RUS"); http://www.cyberforum.ru/cpp-beginners/thread1194067.html
C++ Удалить из символьного файла f все однобуквенные слова и лишние пробелы. Результат записать в файл g
Дан символьный файл f. Группы символов, разделенных пробелами и не содержащих пробелов внутри себя, называют словами. Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в файл g.
C++ Дан текстовый файл с данными о студентах, содержащий сведения: ФИО и сумма стипендии. Вывести 5 самых богатых
Текстовый файл может содержать запись: Ivanov Ivan Ivanovich 1340 либо каждое слово построчно-на усмотрение разработчика. Я создала структуру: struct Student { string fio; string name; string otch; int st; }; Но мне не ясно как считывать структуру из текстового файла, чтобы потом отсортировать и вывести на экран?
C++ Ошибка в программе вычисления arctg(x) http://www.cyberforum.ru/cpp-beginners/thread1194047.html
Программа открывается, но говорят, что какой-то блок не работает... Посмотрите, пожалуйста, решить данную проблему. #include <iostream> #include <stdio.h> #include <math.h> using namespace std; int main() {
C++ Длинная арифметика, деление Нужно составить программу для деления числа а на число b. Оба числа многозначные. Может кто то писал уже такую программу. Желательно на уровне начинающего :) подробнее

Показать сообщение отдельно
evelolka
 Аватар для evelolka
2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
30.05.2014, 21:32     Правильно ли я записываю/ считываю ( принцип вроде да а реализовано УГ)
В общем дан односвязный список
помогите найти косяк
сама структура
C++
1
2
3
4
5
6
7
8
9
struct WORKER
    {
      char name[100], family[100] , dolzhnost[100] ;
      int year;
      WORKER *next ;
    };
    WORKER *head = 0 ;
    WORKER *curr = 0 ;
    WORKER tit ;
я понимаю так
чтобы записать в файл нужно
1) создать структуру скопировать в неё текущий элемент и записать его в файл и так до конца списка
C++
1
2
3
4
5
6
7
8
9
10
11
12
std::ofstream out("lab.txt", std::ios_base::out );
    curr = head;
    while( curr -> next != 0 )
    {
        strcpy( tit.name , curr -> name ) ;
        strcpy( tit.family , curr -> family ) ;
        strcpy( tit.dolzhnost , curr -> dolzhnost ) ;
        tit.year = curr -> year ;
        out.write( (char*)&tit , sizeof( WORKER ) );
        curr = curr -> next ;
    };
    out.close() ;
2) для считывания сделать наоборот




C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
char file[100];
            std::cout << "\nВведите имя файла" << std::endl ;
            std::cin >> file;
            std::ifstream in( file , std::ios_base::in );
            if ( !in.is_open() )
                {
                    std::cout << "Файл не может быть открыт или создан\n" << std::endl ;
                    return 1 ;
                }
            curr = head ;
            while( !in.eof() )
            {
                if ( head == 0 )
                {
                    head = new WORKER ;
                    curr = head ;
                }
                else
                {
                    curr -> next = new WORKER ;
                    curr = curr -> next ;
                }
                in.read( ( char* )&tit , sizeof( WORKER ) ) ;
                //////////////так считает 1 элемент и выведет на экран/////////////
                std::cout << tit.name << std::endl ;
                std::cout << tit.family << std::endl ;
                std::cout << tit.dolzhnost << std::endl ;
                std::cout << tit.year << std::endl ;
                ////////////////////////////не копирует в структуру///////////////
                strncpy( curr -> name , tit.name , 30 ) ;
                strncpy( curr -> family , tit.family ,30 ) ;
                strncpy( curr -> dolzhnost , tit.dolzhnost , 30 ) ;
                curr -> year = tit.year ;
                //////////////////////////////////////////////////////////////////
                curr = curr -> next ;
            };
        in.close();
        curr -> next = 0 ;


yj
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru