Как передать результаты функции другой функции в C ++ - PullRequest
1 голос
/ 30 марта 2020

В настоящее время я занимаюсь программированием, которое читает текстовый файл, выполняет вычисления, а затем возвращает результаты в новый текстовый файл. До сих пор программа возвращает основные сведения о текстовом файле c, однако я с трудом разбираю результаты двух функций, выполняющих вычисления, в функции writetoFile (которая, как следует из названия, записывает весь вывод в новый текстовый файл).

Это 2 функции вычисления, а также функция writetoFile

//function 1
double robotComplexity(std::vector<std::string>& lines) //takes in the out.txt file
{
    std::string output = lines[0]; //so far only reads the first line of the output file. 
    std::string input = output.substr(18,1);

    double complexity = 20 * atoi(input.c_str());

    if(complexity > 100) {
        complexity = 100;
    }

    cout << "The Robot Complexity is: " << complexity << endl;
    return complexity;
}

//function 2
double robotVariability(std::vector<std::string>& lines)
{
    std::string output = lines[0]; //so far only reads the first line of the output file. 
    std::string input = output.substr(15,2);

    double variability;

    variability = 5 + atoi(input.c_str());

    cout << "The Robot Variability is: " << variability << endl;
    return variability;
}

//function to write to file. 
void writeFile(std::string const& outputFile, std::vector<std::string> const& lines,
               double unitComplexity, double unitVariability)
{
   std::ofstream file(outputFile);
   for(std::string const& line: lines)
   {
      file << line << std::endl;
   }
}

Я пытался использовать enchaned для l oop типа double, но он не принимает его, получая ошибку , «для этого оператора на основе диапазона» требуется подходящая функция «начало», и ни одна не была найдена »

Чтобы повторить, я пытаюсь добавить результаты функции robotComplexity и функции robotValdity в выходной файл, показанный в функция записи файла. Если вам нужен какой-либо дополнительный код, пожалуйста, не стесняйтесь спрашивать Спасибо.

Отредактировано, чтобы включить основной

int main() {

readFile(inputFile1, inputFile2, inputFile3, lines);
robotComplexity(lines);
robotVariability(lines);
writeFile(outputFile, lines, robotComplexity(lines), robotVariability(lines));

getch();
return 0;

}

попытка для l oop

 for(double x: unitComplexity) {
      file << x << std::endl;
   }

...