С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 31
1

Использование файла в другой функции

23.02.2014, 13:49. Показов 1038. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Гугл никак не помог, хоть пути исправления ошибки LNK2001 там есть, но все не то.
Конкретно, в чем дело. Есть два файла code.cpp и mylists.h
В первом открываю файл, во втором функции, работающие с этим файлом.
Компилятор выдает такие строки:

code.cpp:
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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <limits.h>
#include "mylists.h"
 
void main()
{
    FILE *inn;
    inn = fopen("input.txt", "r");
 
    //int i, n, sum;
    list *P, *Q, *R=NULL;
    
 
    P=new list;
    scanPoly(P);
    
    Q=new list;
    scanPoly(Q);
    
    R=sumPoly(P, Q);
    
    fclose(inn);
    FILE *out;
    out = fopen("output.txt", "w");
    printPoly(R);
    _fcloseall();
}
mylists.h:
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#define MAX(X, Y) X>Y? X:Y
 
extern struct list
    {
        int num;
        int mid;
        list *next;
    };
 
 
void scanPoly(list *R)
{
    extern FILE *inn;
    static int sep[]={INT_MAX, INT_MAX};
    int key = 1;
 
    int i=0;
    list *m;
    m = R;
    while(!feof(inn) && key)
    {
        m->num = sep[0];
        m->mid = sep[1];
        fscanf(inn, "%d%d", &sep[0], &sep[1]);
        if(sep[0] > m->num) key = 0;
        else
        {
            m = m->next = new list;
            m->num = sep[0];
            m->mid = sep[1];
        }
    }
    m=NULL;
}
 
list* sumPoly(list* A, list*B)
{
    list *m, *R;
    int i, sum, j, f;
    m=R=NULL;
    while(A!=NULL && B!=NULL)
    {
        if(A->num > B->num)
        {
            m=new list;
            m->num = A->num;
            m->mid = A->mid;
            A=A->next;
            m=m->next;
        }
 
        if(A->num < B->num)
        {
            m=new list;
            m->num = B->num;
            m->mid = B->mid;
            B=B->next;
            m=m->next;
        }
 
        
        sum = A-> mid + B->mid;
        if(sum != 0)
        {
            m=new list;
            m->num = B->num;
            m->mid = sum;
            A=A->next;
            B=B->next;
            m=m->next;
        }
    }
 
    while(A != NULL)
    {
        m=new list;
        m->num = A->num;
        m->mid = A->mid;
        A=A->next;
        m=m->next;
    }
    while(B != NULL)
    {
        m=new list;
        m->num = B->num;
        m->mid = B->mid;
        B=B->next;
        m=m->next;
    }
    m->next=NULL;
    return R;
}
 
void printPoly(list* R)
{
    extern FILE * out;
    while(R)
    {       
        fprintf(out, "%d %d ",R->num, R->mid);
        R=R->next;
    }
}
Воюю уже полнедели.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2014, 13:49
Ответы с готовыми решениями:

Из одного файла переместить текст в другой файл с заменой текста на другой
Помогите нужно сделать вот такую вещь заготовка есть но не могу осмыслит как сделать вот это: ...

Использование функции как параметра другой функции
В задании указано, что функция P прибавляет значение функции ff к элементу массива, если он входит...

Использование значение функции в другой функции
Здарвствуйте.Задание:ввести три числа и программа выберает какое самое большой и самое маленькое и...

Использование переменной в функции другой функции
namespace ABCS { class Functions { public Functions() { } public...

9
3 / 3 / 2
Регистрация: 03.10.2012
Сообщений: 28
23.02.2014, 13:53 2
Объявите

FILE * out;

Сразу после

#define MAX(X, Y) X>Y? X:Y

Добавлено через 59 секунд
Почему у вас тела функций в херед файле?
0
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 31
23.02.2014, 13:58  [ТС] 3
Честно говоря, не хотелось файлы глобальными делать.. но, видимо, придется.

Цитата Сообщение от unmanner89 Посмотреть сообщение
Почему у вас тела функций в херед файле?
А как нужно? Когда только начинал учиться, показали такое. С тех пор и использую
0
3 / 3 / 2
Регистрация: 03.10.2012
Сообщений: 28
23.02.2014, 14:01 4
Лучший ответ Сообщение было отмечено ArtgrammeR как решение

Решение

Вас на** -- обманули

Перенесите все тела функций в *.c файл, в *.h оставьте только прототипы:
void scanPoly(list *R);
...

Слово extern везде будет лишним после этого.
1
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 31
23.02.2014, 14:10  [ТС] 5
unmanner89, хм, спасибо большое)
Тогда получается *.с файл подключать в хедере?
0
3 / 3 / 2
Регистрация: 03.10.2012
Сообщений: 28
23.02.2014, 14:11 6
Нееет, эти строки:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <limits.h>

Нужно перенести в хедер. И подключать хедер в *.c файле.
0
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 31
23.02.2014, 14:15  [ТС] 7
А, вот как.
Просто путем переноса тел в .h, в исполняемом только main и остается, ничего «лишнего».
0
3 / 3 / 2
Регистрация: 03.10.2012
Сообщений: 28
23.02.2014, 14:16 8
Тела функции это не лишнее, они должны всегда в быть в *.c файле.
0
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 31
23.02.2014, 14:19  [ТС] 9
Спасибо, unmanner89, теперь буду знать об этом.
0
3 / 3 / 2
Регистрация: 03.10.2012
Сообщений: 28
23.02.2014, 14:20 10
Обращайтесь
0
23.02.2014, 14:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2014, 14:20
Помогаю со студенческими работами здесь

Использование массива из функции в другой функции
как использовать полученный массив в другой функции. к примеру в функции int Mass(char *fname)...

Использование функции из другой формы
Параллельно появился ещё один вопрос. Есть форма Form1, в которой есть таблица, обновляемая так же...

Использование функции из другой папки
В общем такая проблема, мне нужно использовать функцию которая находится совершенно в другой...

Использование переменной из одной функции в другой
Здравствуйте, подскажите, пожалуйста, каким образом можно использовать значение переменной из одной...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru