输出字符串/字符错误(c++)
Errors with outputing strings/chars (C++)
我创建了一个名为RNA_complement的函数。它应该取已经从输入文件流中读取的一行并替换特定的字母用新的字母(所以叫补语)。完成后,应该将结果输出到输出文件流(输出文件)。
问题是:它没有将结果输出到文件,即使我已经为它写了一个命令。为什么通不了?
函数写在int main函数之外,函数声明为&在main函数内部初始化。
我得到了其他错误,如"从char*到char的无效转换"answers"不能将字符串转换为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;
}
}
然后我决定在这里初始化函数
genesacid.open("genes.txt");
if(!genesacid.is_open())
{
cerr <<"Error: File cannot be opened"<<endl;
return -1;
}
else
{
getline(genesacid, line1);
}
genesacid.close();
genesacidnew.open("genesoutput.txt");
if(!genesacidnew.is_open())
{
cerr <<"Error: File cannot be opened"<<endl;
return -1;
}
else
{
genesacidnew<<"Fragment 1: " <<line1 <<endl;
genesacidnew<<"Complement: "<<endl;
}
RNA_complement(line1); /*here*/
genesacidnew.close();
首先,让我们弄清楚什么是RNA补体:它由用互补碱基代码替换RNA碱基的字母组成,即A
↔U
和C
↔G
(我在这里忽略IUPAC模糊性代码,因为它们很少使用)。
其次,让我们指定函数的作用域。目前,它(不成功地)尝试做两件事:
- 改变字符串本身,和
- 将更改的碱基写入文件
它也返回一些东西(char
),但不清楚是什么。
让我们从头开始,正确地指定语义:
- 函数
rna_complement
(注意c++命名惯例)接受一个RNA片段作为std::string
(全部大写字母),并返回该片段的一个补充版本。
这是直接和明确的。现在我们可以实现它了:
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;
}
您在RNA_complement
函数中写道:
ofstream genesacidnew;
您从未指定要写入的文件。像这样使用
ofstream genesacidnew("Myfilename.ext");
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 错误:未在此范围内声明'reverse'