C++ 返回文本字符串,然后在后面的函数中调用所述字符串

C++ 返回文本字符串,然后在后面的函数中调用所述字符串,c++,C++,我几乎完成了所有的家庭作业,但我要做的最后一部分是制作一个程序,从名为“quad.txt”的文本文件中读取一些值,并用二次公式计算根,然后输出值。实验室的第一部分是在一个函数main中完成这一切。那很好。但是,现在我被要求编写三个独立的函数:一个计算判别式(b^2-(4*a*c))并根据判别式的值返回字符串值(正、零或负),另一个将根据上面返回的字符串值计算实际根和输出,最后是主函数,它将打开文件并运行另外两个函数。请参阅下面的代码,但我遇到的问题是,我不知道如何从函数disc()返回字符串,然

我几乎完成了所有的家庭作业,但我要做的最后一部分是制作一个程序,从名为“quad.txt”的文本文件中读取一些值,并用二次公式计算根,然后输出值。实验室的第一部分是在一个函数main中完成这一切。那很好。但是,现在我被要求编写三个独立的函数:一个计算判别式(b^2-(4*a*c))并根据判别式的值返回字符串值(正、零或负),另一个将根据上面返回的字符串值计算实际根和输出,最后是主函数,它将打开文件并运行另外两个函数。请参阅下面的代码,但我遇到的问题是,我不知道如何从函数disc()返回字符串,然后让函数display()调用返回的字符串值并输出正确的数据。以下是我目前的代码:

这是指向我的quad.txt文件的链接

//布莱恩·塔克
//5.23.2012
//实验6第1部分
//文本文件中的二次公式
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
INTA、b、c//设置变量
双r1,r2;
串盘(){
if((pow(b,2)-(4*a*c)>0)){//确定是否有两个根和输出
返回正数;
}
else if((pow(b,2)-(4*a*c)==0)){//确定是否存在双根
返回零;
}
else if((pow(b,2)-(4*a*c)<0)){//确定是否没有根
返回负值;
}
}
无效显示(字符串数据){
r1=(-b)+sqrt(pow(b,2)-(4*a*c))/(2*a);//二次公式
r2=(-b)-sqrt(pow(b,2)-(4*a*c))/(2*a);
如果(正){

cout执行此操作的方法是从光盘返回一个std::string,将其作为参数传递到display中,并使用==将其与设置值进行比较

例如:

#include <string>
#include <iostream>

std::string valueFunction( int i)
{ 
  if ( i >0 )
   return "positive";
  else
   return "not positive";
}

void resultFunction( std::string data)
{
   if (data == "positive")
      std::cout<<"It was a positive number"<<std::endl;
   else if (data == "not positive")
      std::cout<<"it was not a positive number"<< std::endl;
}

int main()
{  
   int i = 453;
   std::string result = valueFunction(i);
   resultFunction(result);
}
#包括
#包括
std::字符串值函数(int i)
{ 
如果(i>0)
返回“正”;
其他的
返回“非正”;
}
void resultFunction(标准::字符串数据)
{
如果(数据=“正”)

std::cout这是我的想法,但我的教授在作业表中列出了这一点:“创建一个函数来计算判别式,并根据条件返回单词:“正”、“零”或“负”。“您建议我如何返回字符串值(甚至可能吗?)我更喜欢,而不是简单地告诉什么做,是指向一个方向,我可以阅读和学习如何做到这一点,因为我还是很新的C++。@ Brututkk返回一个STD::从磁盘()字符串。编辑我的答案(对不起,读不好我的部分).太棒了。我会试一试,然后再报告!我的天啊,你太棒了!真管用。太感谢你了!我试过用字符串()以前,但我不知道如何让它工作。Eeee我很高兴!!!!!谢谢!!!!!!!:)虽然我有一个问题。虽然它工作得很好,但当我在CMD中运行它时,出于某种原因,它读取最后一组数据值并输出两次。你知道为什么会这样吗?我的txt文件中只有15个值(5组3个),但是有6行正在输出,最后一行与前面的一行相同。