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;
)。通过在每个返回语句之前打印进度消息,使函数更加冗长。如前所述,返回太早。我修改您的代码:
#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