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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
#1

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

07.05.2012, 15:27. Просмотров 455. Ответов 0
Метки нет (Все метки)

Раньше я не пробовал разбивать программу на файлы, но сейчас эта необходимость возникла и, конечно, возникли новые проблемы:
  • проблема с передачей файла, допустим, 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++):

Передача файлов через параметры функции main - C++
Всем привет. Я студент первого курса. У меня возникла проблема при написании программы шифрования Xor алгоритмом, программа работает...

Работа с массивом структур в функции через указатель на этот массив - C++
Добрый вечер. Имеется следующая задача: &quot;Разработайте программу, сохраняющую записи (порядковый номер ввода, число с плавающей точкой и...

Передача массива структур в функции - C++
Написал лабораторную работу, программа свои функции выполняет, но мне кажется, что можно что-то наколдовать с памятью. Подскажите, как...

Передача массива структур в функцию через указатель - C++
вот пример куска кода, не могу понять почему ругается на: void Add(student *ptr) { for(int i = 0; i&lt;lim; i++) { ...

Передача файлов на телефон через COM порт - C++
Помогите пожалуста понять как можно осуществить передачу файлов на мобильный телефон через АТ команды!Как посылать АТ команды на телефон и...

Передача массива другой функции через указатель - C++
Сейчас я изучаю функции и выполняю упражнение по работе с массивом. Задача такая: занести числа в массив, сделать обратный порядок...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 15:27
Привет! Вот еще темы с ответами:

Прототип функции - C++
Пожалуйста помогите!!! Написать программу для вычисления произведения ненулевых элементов, расположенные на четных строках массива...

Прототип функции - C++
нужно написать прототип функции, которая имеет имя f1, возвращает вещественное значение и имеет два параметра, целые числа, которые...

Прототип функции - C++
Как правильно: void mul(int x, int y); int main() { } void mul(int x, int y) {

Прототип функции - C++
Всем салют! Помогите пожалуйста с прототипом функции, очень прошу всех-сильно затрудняюсь в написании... Условие: Написать программу...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru