C++ 输出字符串/字符时出错(C+;+;)
我创建了一个名为RNA_补码的函数。它应该从输入文件流中读取一行,并替换特定的字母 使用新字母(因此称为补语)。完成后,应该将结果输出到输出文件流(到输出文件) 问题是:它没有将结果输出到文件,尽管我已经为它编写了一个命令。为什么没有通过 该函数是在int主函数之外编写的,该函数是在主函数内部声明和初始化的 我还遇到了其他错误,比如“从char*到char的转换无效”和“无法将字符串转换为char”,等等。这让人沮丧 代码如下:C++ 输出字符串/字符时出错(C+;+;),c++,C++,我创建了一个名为RNA_补码的函数。它应该从输入文件流中读取一行,并替换特定的字母 使用新字母(因此称为补语)。完成后,应该将结果输出到输出文件流(到输出文件) 问题是:它没有将结果输出到文件,尽管我已经为它编写了一个命令。为什么没有通过 该函数是在int主函数之外编写的,该函数是在主函数内部声明和初始化的 我还遇到了其他错误,比如“从char*到char的转换无效”和“无法将字符串转换为char”,等等。这让人沮丧 代码如下: char RNA_complement(string line)
char RNA_complement(string line)
{
char mychar[50];
ofstream genesacidnew;
for (int i = 0; i < line.length(); i++)
{
line = mychar[i];
if (mychar[i] == 'A')
{
mychar[i]= 'Z';
}
genesacidnew << "Complement: " <<mychar <<endl;
}
}
char-RNA\u补码(字符串行)
{
char-mychar[50];
流基因突变;
对于(int i=0;i genesacidnew在您编写的RNA_补码
函数中:
ofstream genesacidnew;
您从未指定要写入的文件。请这样使用
ofstream genesacidnew("Myfilename.ext");
在您编写的RNA\u补码函数中:
ofstream genesacidnew;
您从未指定要写入的文件。请这样使用
ofstream genesacidnew("Myfilename.ext");
首先,让我们弄清楚什么是RNA补码:它包括用补码替换RNA碱基的字母,即A
↔ <代码>U
和C
↔ G
(我在这里忽略IUPAC模糊代码,因为它们很少使用)
其次,让我们指定函数的范围。目前它(未成功)尝试做两件事:
更改字符串本身,然后
将更改的基写入文件
它还返回一些内容(char
),但不清楚是什么
让我们从头开始,正确地指定语义:
- 函数<代码> RNaYFult(注释C++命名约定)将一个RNA片段作为<代码> STD::String < /C> >(在所有大写字母中),并返回片段的补充版本。
这是简单明了的。现在我们可以实现它:
std::string rna_complement(std::string fragment) {
for (unsigned pos = 0; pos < fragment.length(); ++pos) {
switch (fragment[pos]) {
case 'A': fragment[pos] = 'U'; break;
case 'C': fragment[pos] = 'G'; break;
case 'G': fragment[pos] = 'C'; break;
case 'U': fragment[pos] = 'A'; break;
default: assert(false); // This should never happen.
}
}
return fragment;
}
std::string rna_补码(std::string片段){
for(无符号pos=0;pos
首先,让我们弄清楚什么是RNA补码:它包括用补码替换RNA碱基的字母,即A
↔ <代码>U
和C
↔ G
(我在这里忽略IUPAC模糊代码,因为它们很少使用)
其次,让我们指定函数的范围。目前它(未成功)尝试做两件事:
更改字符串本身,然后
将更改的基写入文件
它还返回一些内容(char
),但不清楚是什么
让我们从头开始,正确地指定语义:
- 函数<代码> RNaYFult(注释C++命名约定)将一个RNA片段作为<代码> STD::String < /C> >(在所有大写字母中),并返回片段的补充版本。
这是简单明了的。现在我们可以实现它:
std::string rna_complement(std::string fragment) {
for (unsigned pos = 0; pos < fragment.length(); ++pos) {
switch (fragment[pos]) {
case 'A': fragment[pos] = 'U'; break;
case 'C': fragment[pos] = 'G'; break;
case 'G': fragment[pos] = 'C'; break;
case 'U': fragment[pos] = 'A'; break;
default: assert(false); // This should never happen.
}
}
return fragment;
}
std::string rna_补码(std::string片段){
for(无符号pos=0;pos
当您收到编译错误或警告时,会附上一个行号。查看相应的文件中的行号,尝试理解错误或警告,并将其修复。这不是一个RNA补码,即使在更正明显错误时也是如此。我知道……这只是一个示例代码。当然,一旦我收到t,我会编写真正的代码他的工作开始了。真正的问题是将结果输出到输出文件,但谢谢@KonradRudolph@user2188311啊,这实际上是有道理的。对不起。当你收到编译错误或警告时,会附上一个行号。查看相应的文件中的行,尝试理解错误或警告,并修复它。这不是一个错误RNA补码,即使在纠正明显的错误时也是如此。我知道……这只是一个示例代码。当然,一旦我让它起作用,我会编写真正的代码。真正的问题是将结果输出到输出文件,但谢谢@KonradRudolph@user2188311啊,这很有道理。对不起。好吧,我刚把它修好了,但是上面的角色输出文件出了问题。我不知道这里发生了什么。好的,我刚刚修复了它,但是输出文件上的字符出了问题。我不知道这里发生了什么。好的,然后如何将结果输出到输出file@user2188311如果您想输出整个更改的文本,那么是的,它将是genesacidnew I had writ将其作为“int main”函数之外的函数,我想在代码中实现此函数。我不确定是否应将其添加到“of Stream”下面函数,但我试过了,但它只是输出补码。我已经让它输出了一行,直接从输入行读取。我还想输出它下面的补码行。好的,然后如何输出