Skip to content

Instantly share code, notes, and snippets.

@bensonk
Created June 25, 2010 03:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bensonk/452351 to your computer and use it in GitHub Desktop.
Save bensonk/452351 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <fstream>
#include <string>
#include <set>
#include <stdlib.h>
using namespace std;
int main(int argc, char** argv) {
if(argc != 2) {
cout << "Usage: ./parse <filename.txt>" << endl;
return 255;
}
string line;
ifstream f(argv[1]);
if(!f.is_open()) {
cout << "The file you specified could not be read." << endl;
return 1;
}
while(!f.eof()) {
getline(f, line);
if(line == "" || line[0] == '#') continue;
char *ptr, *buf;
buf = new char[line.size() + 1];
strcpy(buf, line.c_str());
// Peptide values
double mass;
char* sequence;
int numK;
int numPTS;
int numM;
set<int> parents;
mass = strtod(strtok(buf, " "), NULL);
sequence = strtok(NULL, " ");
numK = strtol(strtok(NULL, " "), NULL, 10);
numPTS = strtol(strtok(NULL, " "), NULL, 10);
numM = strtol(strtok(NULL, " "), NULL, 10);
while(ptr = strtok(NULL, " "))
parents.insert(strtol(ptr, NULL, 10));
//cout << "mass: " << mass << endl
// << "sequence: " << sequence << endl
// << "numK: " << numK << endl
// << "numPTS: " << numPTS << endl
// << "numM: " << numM << endl
// << "parents:" << endl;
//set<int>::iterator it;
//for(it = parents.begin(); it != parents.end(); it++)
// cout << "\t- " << *it << endl;
}
f.close();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment