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

Многофайловая работа, передача структур и файлов через прототип функции - C++

Восстановить пароль Регистрация
 
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
07.05.2012, 15:27     Многофайловая работа, передача структур и файлов через прототип функции #1
Раньше я не пробовал разбивать программу на файлы, но сейчас эта необходимость возникла и, конечно, возникли новые проблемы:
  • проблема с передачей файла, допустим, input в другую функцию. возникает ошибка: "error: ‘fstream’ has not been declared"
  • и передача структур в функцию(еще и работа со списками, поэтому с указателями, как я понял проблема). ошибка: "error: conversion from ‘ItemListOne*’ to non-scalar type ‘ItemListOne’ requested"

Сам проект я вложу в архиве.
А вот фрагменты кода с ошибками, может кому-то и этого будет достаточно:

С файлом ошибка.
В заголовочном файле:
C++
1
void Error(struct ItemListOne, struct ItemListOne, fstream, bool);
В файле исходного кода(функции):
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
#include <iostream>
#include <iomanip>
#include <fstream>
#include "l3functions.h"
using namespace std;
 
void Error(struct ItemListOne *now, struct ItemListOne *current, ifstream &input, bool tester)
{
  if(tester == true)
  {
    if(now->info >= 10000)
    {
        cout << "Ошибка: слишком большое число. Проверьте исходные данные!\n\tДанные введены до места с ошибкой!\n" << endl;
        int tmp;
        while(1)
        {
        input >> tmp;
        if(tmp == 0)
        break;
    }
    break;
    }
  }
  if(tester == false)
  {
    if(current->info >= 10000)
    {
    cout << "Ошибка: слишком большое число. Проверьте исходные данные!\n\tДанные введены до места с ошибкой!\n" << endl;
    int tmp;
    while(1)
    {
        input >> tmp;
        if(tmp == 0)
        break;
    }
    break;
    }
  }
}
В функции main:
C++
1
2
3
.....
Error(now, current, input, tester);
.....
Со структурой ошибка.
В заголовочном файле:
C++
1
void GetItem(struct ItemListOne, struct ItemListOne, fstream, bool);
В файле исходного кода(функции):
C++
1
2
3
4
5
6
7
8
void GetItem(struct ItemListOne *now, struct ItemListOne *current, ifstream &input, bool tester)
{
    if(tester == true)
    input >> now->info;
    
    if(tester == false)
    input >> current->info;
}
В функции main:
C++
1
2
3
.....
GetItem(now, current, input, tester);
.....
Примерно так получается.
Заранее спасибо за помощь!
Вложения
Тип файла: zip Работа.zip (26.7 Кб, 8 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 15:27     Многофайловая работа, передача структур и файлов через прототип функции
Посмотрите здесь:

C++ Прототип функции
Прототип функции C++
C++ Прототип функции С++
C++ Прототип функции
C++ Прототип функции
Передача файлов через параметры функции main C++
C++ Передача массива структур в функции
Передача массива структур в функцию через указатель C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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