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

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

Войти
Регистрация
Восстановить пароль
 
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
#1

Почему не работает функция? - C++

14.08.2012, 19:48. Просмотров 529. Ответов 8
Метки нет (Все метки)

Почему не работает функция? Пишет ошибку: результатом выполнения фрагмента не является 0 аргумеетов


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int provPas() {
    string login_1, login_2, password_1, password_2, pasFile;
    cout<<"Введите ваш логин: ";
    cin>>login_1;
    pasFile="C:\\FullFun+\\PandL\\"+login_1+".txt";
    ifstream log(pasFile.c_str());
    log>>login_2;
    log>>password_2;
    if (log.is_open()==false) {log.close(); cout<<"Такого пользователя не найденно!"<<endl; return 0; getche();}
    else if ((log.is_open()) && (login_2==login_1)) {
    log.close(); 
    cout<<"Пользователь успешно найден!";
    cout<<"________________________________________________________________________________"<<endl;
    cout<<"\nВведите ваш пароль: ";
    cin>>password_1;
    if (password_1==password_2) {cout<<"Вы успешно авторизовались!";  return 1; getche();}
    }
    else {log.close(); cout<<"Такого пользователя не найденно!"<<endl; return 0; getche();}
}//
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2012, 19:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не работает функция? (C++):

Почему-то на работает функция!( - C++
Задача написать функцию, упорядочивающую массив по возрастанию. почему-то не работает((( #include &quot;stdio.h&quot; int FUNC_Vozr (int...

почему не работает функция? - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; void function (int k)// { for(int i=0;i&lt;k;i++) std::cout&lt;&lt;&quot;*&quot;; } int...

Почему не работает функция? - C++
Вот понадобилась функция для взятия остатка от деления нецелых чисел написал такую: long double OperationDouble( long double a , long...

Почему не работает функция getline ()? - C++
Может что-то нужно дописывать? #include &lt;iostream&gt; using namespace std; int main() {

Почему не работает выведенная функция - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int otd(int prin); //Прототип функции int main() { int...

Почему не работает функция Matricav? - C++
#include &lt;vcl.h&gt; #pragma hdrstop #pragma argsused #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include &lt;windows.h&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.08.2012, 20:28 #2
неплохо было бы полностью ошибку увидеть. и строку.
может быть вместо getche() нужно getch();

и еще. отучите себя писать
if (...) { ... } - это плохо читается и плохо дебажится. тем более, когда больше одного выражения в строке

такой вариант без этих недостатков:
if (...)
{
...
}
Aloir
217 / 217 / 13
Регистрация: 17.12.2010
Сообщений: 689
14.08.2012, 20:52 #3
Цитата Сообщение от DU Посмотреть сообщение
неплохо было бы полностью ошибку увидеть. и строку.
может быть вместо getche() нужно getch();

и еще. отучите себя писать
if (...) { ... } - это плохо читается и плохо дебажится. тем более, когда больше одного выражения в строке

такой вариант без этих недостатков:
if (...)
{
...
}
угу, так легче видеть скобки, открытые и закрытые.

а ошибка потому что у есть случай когда функция не вернет ничего

пысы: и после return в функции нет смысла что-то писать, функция туда не дойдет.

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if ((log.is_open()) && (login_2==login_1))
        {
            log.close(); 
            cout<<"Пользователь успешно найден!";
            cout<<"________________________________________________________________________________"<<endl;
            cout<<"\nВведите ваш пароль: ";
            cin>>password_1;
            if (password_1==password_2)
            {
                cout<<"Вы успешно авторизовались!"; 
                return 1; 
                getche();
            }
        }
если зайдет в этот if но пароли не совпадут, тогда фунция нечего не возвращает
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
14.08.2012, 21:25  [ТС] #4
Цитата Сообщение от DU Посмотреть сообщение
неплохо было бы полностью ошибку увидеть. и строку.
может быть вместо getche() нужно getch();

и еще. отучите себя писать
if (...) { ... } - это плохо читается и плохо дебажится. тем более, когда больше одного выражения в строке

такой вариант без этих недостатков:
if (...)
{
...
}
А что такое дебажится?
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
14.08.2012, 21:28 #5
Почему не работает функция?

потому что она не работает.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.08.2012, 22:18 #6
А что такое дебажится?
От слова Debug - устранение багов, поиск ошибок, отладка. Если несколько инструкций в одной строке, то при построчном выполнении программы за один шаг выполняется сразу несколько инструкций и если ошибка в них, то несколько затруднительно искать что там случилось. Куда проще, когда каждая инструкция на своей строке.
Советую выделить время как можно раньше и ознакомится, как можно отлаживать программы в вашей IDE.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.08.2012, 22:36 #7
Цитата Сообщение от Aloir Посмотреть сообщение
если зайдет в этот if но пароли не совпадут, тогда фунция нечего не возвращает
Там дальше else с return.

Добавлено через 9 минут
Egor138, по моему, у вас путаница со скобками после else в 10 строке.
zss
Модератор
Эксперт С++
6361 / 5925 / 1921
Регистрация: 18.12.2011
Сообщений: 15,231
Завершенные тесты: 1
14.08.2012, 22:47 #8
Да все очевидно. Поскольку return стоит раньше, чем getche(),
то окно сразу закрывается и происходит выход из программы с соответствующим выражением,
означающим, что функция main закончилась и возвратила в качестве
результата 0.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.08.2012, 00:04 #9
Рабочий код.
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
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
#include <windows.h>
using namespace std;
 
int provPas() 
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    string login_1, login_2, password_1, password_2, pasFile;
    cout << "Введите ваш логин: ";
    cin >> login_1;
    pasFile = "C:\\FullFun+\\PandL\\" + login_1 + ".txt";
    ifstream log(pasFile.c_str());
    log >> login_2;
    log >> password_2;
    
    if (log.is_open() == false) 
    {
        log.close(); 
        cout << "Такого пользователя не найденно!" << endl; 
        return 0;
    }
    
    if (login_2 == login_1) 
    {
        log.close(); 
        cout << "Пользователь успешно найден!";
        cout << "________________________________________________________________________________"<<endl;
        cout << "\nВведите ваш пароль: ";
        cin >> password_1;
        
         if (password_1 == password_2) 
        {
            cout << "Вы успешно авторизовались!";  
            return 1;
        }
        
        log.close(); 
        cout << "Такого пользователя не найденно!" << endl; 
        return 0;
     }
     
     return 0;
}
 
 
int main()
{
    provPas();
 
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2012, 00:04
Привет! Вот еще темы с ответами:

Почему функция введена, но не работает? - C++
#include&lt;iostream.h&gt; #include&lt;stdio.h&gt; #include&lt;math.h&gt; using namespace std; int n, m, i; void vvod_data(int n) { int i; ...

Почему функция atanh работает неправильно? - C++
Задание http://content-15.foto.my.mail.ru/mail/megabayt_m/_answers/i-359.jpg Кусок кода for (double X = Xn; X &lt;= Xk; X += dX) { ...

Почему функция работает именно так? - C++
Доброго времени суток! Помогите разобраться с кодом пожалуйста У меня есть фигурка которая крутится на экране. Есть функция которая...

функция удаления работает не корректно почему??? - C++
функция удаления в контрольной не работает... возился два дня с ней никак не могу сделать чтоб работала как надо... явно надо по больше...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.08.2012, 00:04
Ответ Создать тему
Опции темы

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