Аватар для Slevin_K
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 47

Передача значений функций в главную программу, вызов функций

04.07.2017, 16:26. Показов 1694. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Скорее всего, неправильно передаю значения функциям и в главную программу.
Помогите найти ошибку!
В итоге выводит 0(первоначальное значение kol в главной программе) и не просит ввести имя файла (не работают функции).

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
#include <iostream>
#include <fstream>
#include <string>
#pragma warning(disable : 4996)
 
using namespace std;
 
int main()
{
    int kol = 0;
    
    void openfile(FILE *);
    int search();
 
    cout << "In the file " << kol << " string(s) that begin and end with the same character" << endl;
    system("pause");
    return 0;
 
}
            void openfile(FILE **fp) //function open file
    {
            char filename[15];
            cout << "Enter the name of file(example: name.txt): " << endl;
            cin >> filename;
            *fp = fopen(filename, "r");
 
        if (!fp)
        {
            cout << "Error file" << endl;
            exit(1);
        }
        
    }
            int search(void) //function cerch kol
            { 
                int kol = 0, len = 0;
                char buf[1024];
                FILE *fp;
                openfile(&fp);
                
                while (!feof(fp))
                {
                    buf[0] = '\0';
                    fgets(buf, sizeof(buf), fp);
                    len = strlen(buf);
                    if (len > 0)
                    {
                        if (buf[len - 1] == '\n')
                        {
                            buf[len - 1] = '\0';
                            len--;
                        }
                        if (len > 0)
                        {
                            if (buf[0] == buf[len - 1])
                                kol++;
                        }
                    }
                }
                return kol;
            }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.07.2017, 16:26
Ответы с готовыми решениями:

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

Передача параметров и вызов функций между page и window
Добрый день, прошу помощи, подскажите, как передать параметр, а ещё лучше вызвать функцию из window в page и наоборот, как в Forms: ...

Передача значений функций
извините конечно за дурацкий вопрос, не нашёл, думаю, может вы поможете... задача такова: мне надо например сделать 3 разных функции...

3
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
04.07.2017, 16:33
Slevin_K, это же си, а не с++

Добавлено через 32 секунды
Цитата Сообщение от Slevin_K Посмотреть сообщение
void openfile(FILE *);
* * int search();
классно вызываете)))
0
79 / 67 / 28
Регистрация: 22.04.2016
Сообщений: 384
04.07.2017, 16:35
Лучший ответ Сообщение было отмечено Slevin_K как решение

Решение

Slevin_K,
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
#include <iostream>
#include <fstream>
#include <string>
#pragma warning(disable : 4996)
 
using namespace std;
 
void openfile(FILE *);
int search();
 
int main()
{
    
    cout << "In the file " << search() << " string(s) that begin and end with the same character" << endl;
    system("pause");
    return 0;
 
}
 
void openfile(FILE **fp) //function open file
{
    char filename[15];
    cout << "Enter the name of file(example: name.txt): " << endl;
    cin >> filename;
    *fp = fopen(filename, "r");
 
    if (!fp)
    {
        cout << "Error file" << endl;
        exit(1);
    }
        
}
int search(void) //function cerch kol
{ 
    int kol = 0, len = 0;
    char buf[1024];
    FILE *fp;
    openfile(&fp);
                
    while (!feof(fp))
    {
        buf[0] = '\0';
        fgets(buf, sizeof(buf), fp);
        len = strlen(buf);
        if (len > 0)
        {
            if (buf[len - 1] == '\n')
            {
                buf[len - 1] = '\0';
                len--;
            }
            if (len > 0)
            {
                if (buf[0] == buf[len - 1])
                    kol++;
            }
        }
    }
    return kol;
}
1
 Аватар для Herji
299 / 208 / 174
Регистрация: 11.05.2016
Сообщений: 655
06.07.2017, 11:59
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
#include <iostream>
#include <fstream>
#include <string>
#pragma warning(disable : 4996)
 
using namespace std;
 
bool openfile(FILE *);
int search(int &_kol);
 
int main()
{
    int kol = 0;
    
    if( search(kol)>=0 )
    {
        cout << "In the file " << kol << " string(s) that begin and end with the same character" << endl;
    } else {
        cout << "err";
    }
 
    system("pause");
    return 0;
 
}
 
bool openfile(FILE **fp) //function open file
{
    char filename[15];
    cout << "Enter the name of file(example: name.txt): " << endl;
    cin >> filename;
    *fp = fopen(filename, "r");
 
    if (!*fp)
    {
        cout << "Error file" << endl;
        return(false);
        // exit(1);
    }
    return(true);
        
}
 
int search(int &_kol) //function cerch kol
{ 
    int len = 0;
    char buf[1024];
    FILE *fp;
 
    if(openfile(&fp))
    {
                
        while (!feof(fp))
        {
            buf[0] = '\0';
            fgets(buf, sizeof(buf), fp);
            len = strlen(buf);
            if (len > 0)
            {
                if (buf[len - 1] == '\n')
                {
                    buf[len - 1] = '\0';
                    len--;
                }
                if (len > 0)
                {
                    if (buf[0] == buf[len - 1])
                        _kol++;
                }
            }
        }
 
    return _kol;
    } else {
                    
    return (-1);
        //error
                    
    }
}
Добавлено через 33 секунды
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
#include <iostream>
#include <fstream>
#include <string>
#pragma warning(disable : 4996)
 
using namespace std;
 
bool openfile(FILE *);
int search(int &_kol);
 
int main()
{
    int kol = 0;
    
    if( search(kol)>=0 )
    {
        cout << "In the file " << kol << " string(s) that begin and end with the same character" << endl;
    } else {
        cout << "err";
    }
 
    system("pause");
    return 0;
 
}
 
bool openfile(FILE **fp) //function open file
{
    char filename[15];
    cout << "Enter the name of file(example: name.txt): " << endl;
    cin >> filename;
    *fp = fopen(filename, "r");
 
    if (!*fp)
    {
        cout << "Error file" << endl;
        return(false);
        // exit(1);
    }
    return(true);
        
}
 
int search(int &_kol) //function cerch kol
{ 
    int len = 0;
    char buf[1024];
    FILE *fp;
 
    if(openfile(&fp))
    {
                
        while (!feof(fp))
        {
            buf[0] = '\0';
            fgets(buf, sizeof(buf), fp);
            len = strlen(buf);
            if (len > 0)
            {
                if (buf[len - 1] == '\n')
                {
                    buf[len - 1] = '\0';
                    len--;
                }
                if (len > 0)
                {
                    if (buf[0] == buf[len - 1])
                        _kol++;
                }
            }
        }
 
    return _kol;
    } else {
                    
    return (-1);
        //error
                    
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2017, 11:59
Помогаю со студенческими работами здесь

Передача значений из классов и функций
Здравствуйте, есть проблемка не понимая как правильно использовать классы в PHP, хотел написать класс с функциями которые хотя бы могли...

STM32 передача значений из прерывания в главную программу
Собственно сабж, каким образом можно из функции например: void SPI2_IRQHomdler(void) { if...

Вызов функций внутри других функций
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; using namespace std; ...

Сделать задачу с использованием функций. Ввод-вывод значений массивов осуществить с п0м0щью функций
Задача 1.Даны коэффициенты многочленов P(x) и Q(x) 5-й степени и дано вещественное a. Вычислить P(a+Q(a)P(a+1)). Задача 2.Описать...

Передача значений переменных из неосновных функций друг в друга
Здравствуйте, есть 2 небольшие функции: void RC6_ENCRYPT(unsigned int* pt, unsigned int* ct) { unsigned int i = 0, T = 0, U = 0, A...


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

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

Новые блоги и статьи
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
Настройка MTProxy
Loafer 11.06.2025
Дополнительная информация к инструкции по настройке MTProxy: Перед сборкой проекта необходимо добавить флаг -fcommon в конец переменной CFLAGS в Makefile. Через crontab -e добавить задачу: 0 3. . .
Изучаем Docker: что это, как использовать и как это работает
Mr. Docker 10.06.2025
Суть Docker проста - это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнер, если говорить образно, это запечатанная коробка, в которой находится ваше приложение вместе. . .
Тип Record в C#
stackOverflow 10.06.2025
Многие годы я разрабатывал приложения на C#, используя классы для всего подряд - и мне это казалось естественным. Но со временем, особенно в крупных проектах, я стал замечать, что простые классы. . .
Разработка плагина для Minecraft
Javaican 09.06.2025
За годы существования Minecraft сформировалась сложная экосистема серверов. Оригинальный (ванильный) сервер не поддерживает плагины, поэтому сообщество разработало множество альтернатив. CraftBukkit. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru