Я пытаюсь все более и более комфортно работать с C++, и я перешел к тому, чтобы писать некоторые файлы. Я был на полпути через что-то, что бы быть в состоянии разобрать Fasta файлы, и я немного застрял получил:Пытается распечатать содержимое вектора
#include<fstream>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
//A function for reading in DNA files in FASTA format.
void fastaRead(string file)
{
ifstream inputFile;
inputFile.open(file);
if (inputFile.is_open()) {
vector<string> seqNames;
vector<string> sequences;
string currentSeq;
string line;
while (getline(inputFile, line))
{
if (line[0] == '>') {
seqNames.push_back(line);
}
}
}
for(int i = 0; i < seqNames.size(); i++){
cout << seqNames[i] << endl;
}
inputFile.close();
}
int main()
{
string fileName;
cout << "Enter the filename and path of the fasta file" << endl;
getline(cin, fileName);
cout << "The file name specified was: " << fileName << endl;
fastaRead(fileName);
return 0;
}
Функция должна пройти через текстовый файл, как показано ниже:
Hello World!
>foo
bleep bleep
>nope
и определить которые начинаются с '>' и нажимают их на векторные seqNames, а затем сообщают содержимое в командную строку. - Поэтому я пытаюсь написать способность обнаруживать быстрые головоломки формата. Однако, когда я компилирую я сказал:
n95753:Desktop wardb$ g++ testfasta.cpp
testfasta.cpp:25:25: error: use of undeclared identifier 'seqNames'
for(int i = 0; i < seqNames.size(); i++){
^
testfasta.cpp:26:17: error: use of undeclared identifier 'seqNames'
cout << seqNames[i] << endl;
Однако я уверен, что я объявил вектор в строке: vector<string> seqNames;
Спасибо, Бен.
Я предлагаю вам использовать некоторую среду IDE, таким образом, вы обнаружите такие тривиальные ошибки даже перед компиляцией. (я не являюсь нисходящим) –
Я использую Xcode как IDE, хотя только с одним файлом cpp, который по какой-то причине отличается от открытого в Xcode целым проектом, все еще привыкший к его использованию. – Ward9250