C++ 输出字符串/字符时出错(C+;+;)

C++ 输出字符串/字符时出错(C+;+;),c++,C++,我创建了一个名为RNA_补码的函数。它应该从输入文件流中读取一行,并替换特定的字母 使用新字母(因此称为补语)。完成后,应该将结果输出到输出文件流(到输出文件) 问题是:它没有将结果输出到文件,尽管我已经为它编写了一个命令。为什么没有通过 该函数是在int主函数之外编写的,该函数是在主函数内部声明和初始化的 我还遇到了其他错误,比如“从char*到char的转换无效”和“无法将字符串转换为char”,等等。这让人沮丧 代码如下: char RNA_complement(string line)

我创建了一个名为RNA_补码的函数。它应该从输入文件流中读取一行,并替换特定的字母 使用新字母(因此称为补语)。完成后,应该将结果输出到输出文件流(到输出文件)

问题是:它没有将结果输出到文件,尽管我已经为它编写了一个命令。为什么没有通过

该函数是在int主函数之外编写的,该函数是在主函数内部声明和初始化的

我还遇到了其他错误,比如“从char*到char的转换无效”和“无法将字符串转换为char”,等等。这让人沮丧

代码如下:

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;igenesacidnew在您编写的
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”下面函数,但我试过了,但它只是输出补码。我已经让它输出了一行,直接从输入行读取。我还想输出它下面的补码行。好的,然后如何输出