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

Считывание из фаила - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа со строками. Програма работает, но не совсем так. http://www.cyberforum.ru/cpp-beginners/thread60124.html
помогите пожалуйста мне задали увеличить строку символов за счет вставки между словами пропусков я сделал программу но пропусков она не вставляет а выводит ту же строку и какие-то символы сердечка...
C++ Сложение двумерных массивов помогите пожалуйста с прогой!!! Написать функцию, которая складывает соответствующие элементы двух заданных массивов и заносит результаты в третий массив. Все три массива имеют одинаковые... http://www.cyberforum.ru/cpp-beginners/thread60114.html
Задача на массивы. C++
Помогуте сделать задачи по массивам! 1.Написать функцию, которая возвращает количество элементов заданного в качестве параметра массива целого типа, превышающих среднее арифметическое значение его...
C++ Поменять местами две серии в массиве.
Помогите пожалуйста со следующей задачей. Задан целочисленный массив размера N. Поменять местами i-ую и j-ую серии массива. Номера i и j вводятся пользователем. Использовать...
C++ Начинания http://www.cyberforum.ru/cpp-beginners/thread60084.html
Хочу выучить с++ с какой программы посоветуете начать? хорошо было бы если бы дали ссылочку на книги по с++ (самоучители и т.п.) я раньше пользовался паскалем...) заранее спасибо за помощь.
C++ Задать в массиве некий элемент из другого массива. Вот у меня есть 1 массива char c; и char x="0123456789abcdefghijklmnopqrstuvwxyz" Как например задать c=элемент из x? Например мне нужен d=7; Я делал так c=x... В c=должно записаться 7, но... подробнее

Показать сообщение отдельно
TheKnyazz
10 / 10 / 1
Регистрация: 27.04.2009
Сообщений: 30

Считывание из фаила - C++

30.10.2009, 21:38. Просмотров 536. Ответов 0
Метки (Все метки)

В общем у меня есть текстовый файл и табличкой внутри и данными примерно вот такого содеражания.
C++
1
2
3
4
5
6
7
8
9
ЙННННЛНННННННННННННННННННННННЛННННЛНННЛНННННННННННЛННННЛННННЛННННЛННННЛНННННН»
єtab є                       єBirtє   є           єworkєworkєN   єN   є      є
єnumbє       FIO             єDateєSEXєProfession єAge єlev єcehaєsec-єsummerє
є    є                       є    є   є           є    є    є    єtoraєy     є
МННННОНННННННННННННННННННННННОННННОНННОНННННННННННОННННОННННОННННОННННОНННННН№
?1   ?blablab                ?1991? m ?Progr      ?1   ?1   ?1   ?1   ?1111  ?
МННННОНННННННННННННННННННННННОННННОНННОНННННННННННОННННОННННОННННОННННОНННННН№
?2   ?Green                  ?1991? m ?progr      ?3   ?3   ?3   ?3   ?3     ?
ИННННКНННННННННННННННННННННННКННННКНННКНННННННННННКННННКННННКННННКННННКННННННј
Мне нужно считать отсюда данные и загнать их в динамическую струтуру а-ля двунаправленный список.

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
void LoadFile(myList* & FIRST,myList* &LAST){//чтение входной таблицы из файла
    workList z;//статическая переменая
    char *exr; exr=new char[6];
    zeroz(z,exr);
    ifstream file;//класс чтения из файла
    char *s=path();//вызов функции для указания пути
 if (s==NULL) return ;
    s=strcat(s,"data.txt");
    file.open(s,ios::in);//открытие файла
 
    if (!file) {errormessage("ERROR:cannot read file");
                  return;
               }
    file.seekg(401,ios::beg);
while(!(file.eof())){
    file.seekg(3,ios::cur);
    file.read(exr,3);z.tabNum = atoi(exr);
 
    //чтение табельного номера
    file.seekg(3,ios::cur);file.read(z.Fio,23);    //чтение ФИО
    file.seekg(1,ios::cur);file.read(exr,4);
 
    //чтение года рождения
    z.age=atoi(exr);strcpy(exr,"     \0");
    file.seekg(2,ios::cur);file.read(exr,1);
 
    //чтение пола рабочего
    if (exr[0]=='М'||exr[0]=='m') z.gender=true;
        else z.gender=false;
    strcpy(exr,"     \0");
    file.seekg(2,ios::cur); file.read(z.prof,11);    //чтение профессии
    file.seekg(1,ios::cur); file.read(exr,4);
 
    //чтение стажа
    z.work_age=atoi(exr);   strcpy(exr,"     \0");
    file.seekg(1,ios::cur); file.read(exr,4);
 
    //чтение разряда
    z.work_level=atoi(exr); strcpy(exr,"     \0");
    file.seekg(1,ios::cur); file.read(exr,4);
 
    //чтение цеха
    z.num_ceh=atoi(exr);    strcpy(exr,"     \0");
    file.seekg(1,ios::cur); file.read(exr,4);
 
    //чтение участка
    z.num_sector=atoi(exr);strcpy(exr,"     \0");
    file.seekg(1,ios::cur);file.read(exr,6);
 
    //чтение оклада
    z.summery=atoi(exr);strcpy(exr,"     \0");
 
      myList *curr=new myList;
      curr->data=z;
      curr->back=LAST;
      curr->forward=NULL;
      if (FIRST==NULL){
                FIRST=LAST=curr;
                FIRST->back=NULL;
               }
      else {
            LAST->forward=curr;
            LAST=curr;
            }
 
    zeroz(z,exr);
    file.seekg(81,ios::cur);
    }
    file.close();//закрытие файла
    delete []exr;
    return;
}
Функцией примерно такого содержания я считываю.

чтоб не было лишних вопросов че я делаю в Zeroz
C++
1
2
3
4
5
6
7
8
void zeroz(workList &z,char *str)
{
strcpy(str,"     \0");
strcpy(z.Fio,"                       \0");
strcpy(z.prof,"          \0");
z.tabNum=z.age=0;z.gender=0;
z.work_age=z.work_level=z.summery=z.num_ceh=z.num_sector=0;
}
Я понимаю, что у меня проблема в самом условии цикла While, но не пойму как сделать по другому( Точнее условие то правильное - читать до конца файла. Но в самом функции я не пойму, что необходимо сделать, что проверка в цикле происходила.

Добавлено через 1 час 10 минут
Подскажите пожалуйста) ибо чего-то туплю ужасно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru