2016-09-20 4 views
0

ich eine Textdatei in Form vonWie eine Textdatei in C++ in Split integer und Zeichenfolge konvertieren/char-Wert

kn

s1

s2

zu nehmen versuchen ...

n

k stellen den Kmer Wert, während die n darstellt Codezeilen darunter. Zum Beispiel ...

ACATGGATGACTT

CTCTTNACTT

ACTAANNAAAATGACTT

ACTTGACTTCGCG

ACTTGACTTTT

3 (k) würde jede DNA-Sequenz, aufgeteilt in 3 Teile und 5 (n) w Ich sollte dem Programm sagen, dass es 5 Zeilen DNA gibt. Ich habe die Datei gelesen, kann aber nicht herausfinden, wie man k und n in einen ganzzahligen Wert umwandelt. Wie würde ich 3 und 5 in zwei separate Ganzzahlen umwandeln und die DNA in eine eigene Zeichenfolge umwandeln, damit ich die beiden vergleichen und zerbrechen kann die DNA-Stränge in kmer-Teile zerlegen?

#include <iostream> 
#include <string> 
#include <fstream> 
#include <map> 

int main(int argc, char* argv[]){ 

    if (argc< 1){ 
    std::cout << "ERROR" << std::endl; 
    return -1; 
    } 

    std::string name = argv[1]; 

    std::ifstream f(name); 
    if(!f){ 
    std::cout << "ERROR" << name << "does not exist" << std::endl; 
    return -1; 
    } 

    std::string s = ""; 
    int k = 0; 
    int n = 0; 

    while(!f.eof()){ 

    s =""; 

    std::getline(f,s); 

    if (!s.empty()) { 


     std::cout << s << std::endl; 

    } 

    } 
    f.close(); 
    return 0; 
} 
+1

Könnten Sie ein bisschen mehr Forschung betreiben, bevor Sie hier neue Fragen stellen? Diese Art von Frage wurde millionenfach gefragt. –

Antwort

0

Wenn Sie davon ausgehen, dass die Datei gültig ist, können Sie etwas tun:

int k = 0; 
int n = 0; 

f >> k; 
f >> n; 

while(!f.eof()) { 
    // do stuff with the rest of the file contents 
} 

Der Eingabe-Operator (>>) versucht, den nächsten Wert aus der Datei zu extrahieren und sie werfen zu einer ganzen Zahl.

Hinweis, >> stoppt automatisch beim nächsten Leerzeichen.


Weiterführende Literatur:

ifstream::operator>> documentation bei cplusplus.com.

Verwandte Themen