C++ 有人能告诉我为什么这个代码不打印任何东西吗?

C++ 有人能告诉我为什么这个代码不打印任何东西吗?,c++,C++,我必须编写一个代码来比较三个文本文件,我一辈子都找不出它为什么不能打印任何东西: #include <iostream> #include <cstring> #include <string> #include <fstream> using namespace std; int main (int argc, char *argv[]) { ifstream mousefile; mousefile.open(argv[1])

我必须编写一个代码来比较三个文本文件,我一辈子都找不出它为什么不能打印任何东西:

#include <iostream>
#include <cstring>
#include <string>
#include <fstream>
using namespace std;

int main (int argc, char *argv[])
{
    ifstream mousefile;
    mousefile.open(argv[1]);
    string mouse_dna;
    getline(mousefile, mouse_dna);

    ifstream humanfile;
    humanfile.open(argv[2]);
    string human_dna;
    getline(humanfile, human_dna);

    ifstream unknownfile;
    unknownfile.open(argv[3]);
    string unknown_dna;
    getline(unknownfile, unknown_dna);

    int len = mouse_dna.size();
    int mouseDistance = 0, humanDistance = 0;

    for(int i=0; i<len; i++)
        if(mouse_dna[i] != unknown_dna[i])
            mouseDistance++;
            return mouseDistance;
    for(int i=0; i<len; i++)
        if(human_dna[i] != unknown_dna[i])
            humanDistance++;
            return humanDistance;


    double similarity_scoreH = (len - humanDistance) / len; 
    double similarity_scoreM = (len - mouseDistance) / len; 
    cout << "MouseCompare = " << similarity_scoreM << endl;
    cout << "HumanCompare = " << similarity_scoreH << endl;

    if (similarity_scoreH == similarity_scoreM)
        cout << "identity cannot be determined" << endl;
    else if (similarity_scoreH > similarity_scoreM)
        cout << "human" << endl;
    else if (similarity_scoreM > similarity_scoreH)
        cout << "mouse" << endl;


}
它仍然一事无成。
谢谢你的帮助。谢谢

它不打印任何内容,因为它在打印指令之前返回(
返回鼠标位置;
返回人距;
)。通过在每个返回语句之前打印进度消息,使函数更加详细。

它不会打印任何内容,因为它在打印指令之前返回(
returnmousedistance;
returnhumandistance;
)。通过在每个返回语句之前打印进度消息,使函数更加详细。

它不会打印任何内容,因为它在打印指令之前返回(
returnmousedistance;
returnhumandistance;
)。通过在每个返回语句之前打印进度消息,使函数更加详细。

它不会打印任何内容,因为它在打印指令之前返回(
returnmousedistance;
returnhumandistance;
)。通过在每个返回语句之前打印进度消息,使函数更加冗长。

如前所述,返回太早。我修改您的代码:

  • 我用括号括住if块和for块
  • 我在结尾有一个返回语句 这是一个开始。例如,如果文件已正确打开,则可能需要添加更多检查

    #include <iostream>
    #include <cstring>
    #include <string>
    #include <fstream>
    using namespace std;
    
    int main (int argc, char *argv[])
    {
        ifstream mousefile;
        mousefile.open(argv[1]);
        string mouse_dna;
        getline(mousefile, mouse_dna);
    
        ifstream humanfile;
        humanfile.open(argv[2]);
        string human_dna;
        getline(humanfile, human_dna);
    
        ifstream unknownfile;
        unknownfile.open(argv[3]);
        string unknown_dna;
        getline(unknownfile, unknown_dna);
    
        int len = mouse_dna.size();
        int mouseDistance = 0, humanDistance = 0;
    
        for(int i=0; i<len; i++)
        {
            if(mouse_dna[i] != unknown_dna[i])
            {
                mouseDistance++;
            }
        }
        for(int i=0; i<len; i++)
        {
            if(human_dna[i] != unknown_dna[i])
            {
                humanDistance++;
            }
        }
    
    
        double similarity_scoreH = (len - humanDistance) / len; 
        double similarity_scoreM = (len - mouseDistance) / len; 
        cout << "MouseCompare = " << similarity_scoreM << endl;
        cout << "HumanCompare = " << similarity_scoreH << endl;
    
        if (similarity_scoreH == similarity_scoreM)
            cout << "identity cannot be determined" << endl;
        else if (similarity_scoreH > similarity_scoreM)
            cout << "human" << endl;
        else if (similarity_scoreM > similarity_scoreH)
            cout << "mouse" << endl;
    
    
        return 0;
    }
    
    #包括
    #包括
    #包括
    #包括
    使用名称空间std;
    int main(int argc,char*argv[])
    {
    ifstream鼠标文件;
    mousefile.open(argv[1]);
    串鼠dna;
    getline(mousefile,mouse_-dna);
    ifstream文件;
    humanfile.open(argv[2]);
    人类染色体dna;
    getline(人类档案,人类dna);
    ifstream未知文件;
    未知文件打开(argv[3]);
    字符串未知_-dna;
    getline(未知文件,未知的dna);
    int len=mouse_dna.size();
    int mouseDistance=0,humanDistance=0;
    
    对于(int i=0;i,正如已经指出的,您返回得太早了。我修改了您的代码:

  • 我用括号括住if块和for块
  • 我在结尾有一个返回语句
  • 这是一个开始。您可能需要添加更多检查,例如,文件是否正确打开

    #include <iostream>
    #include <cstring>
    #include <string>
    #include <fstream>
    using namespace std;
    
    int main (int argc, char *argv[])
    {
        ifstream mousefile;
        mousefile.open(argv[1]);
        string mouse_dna;
        getline(mousefile, mouse_dna);
    
        ifstream humanfile;
        humanfile.open(argv[2]);
        string human_dna;
        getline(humanfile, human_dna);
    
        ifstream unknownfile;
        unknownfile.open(argv[3]);
        string unknown_dna;
        getline(unknownfile, unknown_dna);
    
        int len = mouse_dna.size();
        int mouseDistance = 0, humanDistance = 0;
    
        for(int i=0; i<len; i++)
        {
            if(mouse_dna[i] != unknown_dna[i])
            {
                mouseDistance++;
            }
        }
        for(int i=0; i<len; i++)
        {
            if(human_dna[i] != unknown_dna[i])
            {
                humanDistance++;
            }
        }
    
    
        double similarity_scoreH = (len - humanDistance) / len; 
        double similarity_scoreM = (len - mouseDistance) / len; 
        cout << "MouseCompare = " << similarity_scoreM << endl;
        cout << "HumanCompare = " << similarity_scoreH << endl;
    
        if (similarity_scoreH == similarity_scoreM)
            cout << "identity cannot be determined" << endl;
        else if (similarity_scoreH > similarity_scoreM)
            cout << "human" << endl;
        else if (similarity_scoreM > similarity_scoreH)
            cout << "mouse" << endl;
    
    
        return 0;
    }
    
    #包括
    #包括
    #包括
    #包括
    使用名称空间std;
    int main(int argc,char*argv[])
    {
    ifstream鼠标文件;
    mousefile.open(argv[1]);
    串鼠dna;
    getline(mousefile,mouse_-dna);
    ifstream文件;
    humanfile.open(argv[2]);
    人类染色体dna;
    getline(人类档案,人类dna);
    ifstream未知文件;
    未知文件打开(argv[3]);
    字符串未知_-dna;
    getline(未知文件,未知的dna);
    int len=mouse_dna.size();
    int mouseDistance=0,humanDistance=0;
    
    对于(int i=0;i,正如已经指出的,您返回得太早了。我修改了您的代码:

  • 我用括号括住if块和for块
  • 我在结尾有一个返回语句
  • 这是一个开始。您可能需要添加更多检查,例如,文件是否正确打开

    #include <iostream>
    #include <cstring>
    #include <string>
    #include <fstream>
    using namespace std;
    
    int main (int argc, char *argv[])
    {
        ifstream mousefile;
        mousefile.open(argv[1]);
        string mouse_dna;
        getline(mousefile, mouse_dna);
    
        ifstream humanfile;
        humanfile.open(argv[2]);
        string human_dna;
        getline(humanfile, human_dna);
    
        ifstream unknownfile;
        unknownfile.open(argv[3]);
        string unknown_dna;
        getline(unknownfile, unknown_dna);
    
        int len = mouse_dna.size();
        int mouseDistance = 0, humanDistance = 0;
    
        for(int i=0; i<len; i++)
        {
            if(mouse_dna[i] != unknown_dna[i])
            {
                mouseDistance++;
            }
        }
        for(int i=0; i<len; i++)
        {
            if(human_dna[i] != unknown_dna[i])
            {
                humanDistance++;
            }
        }
    
    
        double similarity_scoreH = (len - humanDistance) / len; 
        double similarity_scoreM = (len - mouseDistance) / len; 
        cout << "MouseCompare = " << similarity_scoreM << endl;
        cout << "HumanCompare = " << similarity_scoreH << endl;
    
        if (similarity_scoreH == similarity_scoreM)
            cout << "identity cannot be determined" << endl;
        else if (similarity_scoreH > similarity_scoreM)
            cout << "human" << endl;
        else if (similarity_scoreM > similarity_scoreH)
            cout << "mouse" << endl;
    
    
        return 0;
    }
    
    #包括
    #包括
    #包括
    #包括
    使用名称空间std;
    int main(int argc,char*argv[])
    {
    ifstream鼠标文件;
    mousefile.open(argv[1]);
    串鼠dna;
    getline(mousefile,mouse_-dna);
    ifstream文件;
    humanfile.open(argv[2]);
    人类染色体dna;
    getline(人类档案,人类dna);
    ifstream未知文件;
    未知文件打开(argv[3]);
    字符串未知_-dna;
    getline(未知文件,未知的dna);
    int len=mouse_dna.size();
    int mouseDistance=0,humanDistance=0;
    
    对于(int i=0;i,正如已经指出的,您返回得太早了。我修改了您的代码:

  • 我用括号括住if块和for块
  • 我在结尾有一个返回语句
  • 这是一个开始。您可能需要添加更多检查,例如,文件是否正确打开

    #include <iostream>
    #include <cstring>
    #include <string>
    #include <fstream>
    using namespace std;
    
    int main (int argc, char *argv[])
    {
        ifstream mousefile;
        mousefile.open(argv[1]);
        string mouse_dna;
        getline(mousefile, mouse_dna);
    
        ifstream humanfile;
        humanfile.open(argv[2]);
        string human_dna;
        getline(humanfile, human_dna);
    
        ifstream unknownfile;
        unknownfile.open(argv[3]);
        string unknown_dna;
        getline(unknownfile, unknown_dna);
    
        int len = mouse_dna.size();
        int mouseDistance = 0, humanDistance = 0;
    
        for(int i=0; i<len; i++)
        {
            if(mouse_dna[i] != unknown_dna[i])
            {
                mouseDistance++;
            }
        }
        for(int i=0; i<len; i++)
        {
            if(human_dna[i] != unknown_dna[i])
            {
                humanDistance++;
            }
        }
    
    
        double similarity_scoreH = (len - humanDistance) / len; 
        double similarity_scoreM = (len - mouseDistance) / len; 
        cout << "MouseCompare = " << similarity_scoreM << endl;
        cout << "HumanCompare = " << similarity_scoreH << endl;
    
        if (similarity_scoreH == similarity_scoreM)
            cout << "identity cannot be determined" << endl;
        else if (similarity_scoreH > similarity_scoreM)
            cout << "human" << endl;
        else if (similarity_scoreM > similarity_scoreH)
            cout << "mouse" << endl;
    
    
        return 0;
    }
    
    #包括
    #包括
    #包括
    #包括
    使用名称空间std;
    int main(int argc,char*argv[])
    {
    ifstream鼠标文件;
    mousefile.open(argv[1]);
    串鼠dna;
    getline(mousefile,mouse_-dna);
    ifstream文件;
    humanfile.open(argv[2]);
    人类染色体dna;
    getline(人类档案,人类dna);
    ifstream未知文件;
    未知文件打开(argv[3]);
    字符串未知_-dna;
    getline(未知文件,未知的dna);
    int len=mouse_dna.size();
    int mouseDistance=0,humanDistance=0;
    

    对于(int i=0;i您可以使用arg[1]、arg[2]和arg[3]。您可能需要arg[0]、arg[1]和arg[2]。

    您可以使用arg[1]、arg[2]和arg[3]。您可能需要arg[0]、arg[1]和arg[2]。

    您可以使用arg[1]、arg[2]和arg[3]。您可能需要arg[0]、arg[1]和arg[2]这不是Python,它将在“返回鼠标距离”上退出,“DyPARD Python FANS”Python风格块,返回是个问题。是的,我在Python上被教过,最近才切换到C++,所以如果我删除返回,它打印出来,但它不正确,如果你想要更多,我需要返回鼠标距离的值吗?“then”中有多个语句你的I/E构造的一部分,你需要在他们周围放上花边。嘿,这不是Python。它将在“返回鼠标距离”上退出;“diyPython FANS”Python风格块,不是,返回是个问题。是的,我在Python上被教过,最近才切换到C++,所以如果我删除返回,它会打印,但是它不正确,我需要。返回mouseInstance值的内容?如果您希望在“then”中有多个语句在if/then构造的一部分,你需要在它们周围放上花括号。嘿!这不是Python。它将在“return mouseDistance;”顽固的Python fan?Python样式块上退出,不管是否存在,返回都是一个问题。是的,我学过Python和ju