2017-01-24 2 views
-6

Я хотел бы задать очень простой вопрос, который когда-то заставлял меня смущать.Как получить возвращаемое значение от функции подпрограммы до основной функции?

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

Вот мой код:

void Read_line (string filename) 
{ 
    int number_of_lines = 0; 
    std::string line1; 
    std::ifstream myfile(filename.c_str()); 

    while (std::getline(myfile, line1)) 
    { 
     ++number_of_lines; 
    } 
    cout << "Number of lines in text file: " << number_of_lines; 

// return number_of_lines; 
} 

int main() 
{ 

    string name = "gbm"; 
    double WEEK = 1930; 
    double DAY = 0; 

    string week = boost::lexical_cast<string>(WEEK); // convert number to string 
    string day = boost::lexical_cast<string>(DAY) ; // convert number to string 

    string filename = name + week + day + ".sp3"; 
    int number_of_lines = Read_line(filename); 

    // my expectation to have "number_of_lines" value in here 

    cout << "Number of lines in text file: " << number_of_lines; 

} 

Благодарим Вас за помогает.

+0

Любой учебник C должен объяснить, как получить результат функции. Функция должна использовать оператор 'return', и вам нужно изменить объявление функции, чтобы сказать, какой тип он возвращает. – Barmar

+1

, вы не можете вернуть другой тип, отличный от функции –

+1

@ChristianHackl функции, очевидно, потому что код был скопирован, и другой учитель был проинформирован по подозрению в авторском праве. – SergeyA

ответ

3

Измените функцию для возврата int вместо void. Затем вы сможете раскомментировать заявление return.

int Read_line (string filename) 
{ 
    ... 
    return number_of_lines; 
} 
Смежные вопросы