2017-01-28 2 views
1

Es ist die letzte Phase meiner Huffman College-Projekt.Wie auch immer, ich habe nie Lese/Schreib-Techniken verwendet. und ich wollte die kurzen Binärdateien von einer externen Datei mit dem Schlüssel lesen.Lesen von Datei Einfügen von Werten in Ints und Zeichen C++

3 A 0100 3 E 0101 3 G 0110 3 M 0111 3 N 1010 3 H 1011 2 S 100 1 T 00 2 10 2 I 111

3 wird PO in einem int genannt

A in einem char namens al

0100 ist in einem Array namens ist etc ...

ich meinen Code abgegeben, aber seine mein erstes Mal Upload in Stapelüberlauf und es braucht so viel Zeit und ich habe überhaupt keine Zeit, danke im Voraus.

+5

Mögliches Duplikat von [Wie in eine Textdatei in C++ lesen und schreiben?] (Http://stackoverflow.com/questions/6051865/how-to-read-and-write-to-a- Textdatei-in-c) – OzizLK

Antwort

0

Öffnen Sie Ihre Datei, lesen Sie die Datei Daten Zeile für Zeile und extrahieren Sie, was Sie von der Linie benötigen.

std::string line; 
    ifstream read; 
    //open data files  
    read.open(file_name); 
    if(read.is_open()) 
    cout << "File ./" << file_name << " is open.\n"; 
    else { 
    cout << "Error opening " << file_name << ".\n"; 
    exit(0); 
    } 

    while (std::getline(read, line)) 
    { 
    // line =3 A 0100 3 E 0101 3 G 0110 3 ...  
    std::istringstream iss (std::move(line)); 
    std::string val_str, al, bin; 
     while(! iss.str().empty()) 
     { 
      try{ 
       iss>>val_str;    
       int val= std::stoi(val_str);  //val = 3 in the first run of the while loop 
       iss >> al;    //al = A in the first run of the while loop 
       iss >> bin 
       // you can use val, al ,bin 
      }catch(..){ 
       break; 
      } 
     } 
    }