2016-07-12 6 views
-1

wie übergeben Zeichenfolge als Verweis im Konstruktor in Header und cpp mit cin, um die Zeile in einer Textdatei zu erhalten. durch diese Eingabeaufforderung auszuführen: Programm < test.txtC++ übergeben Zeichenfolge als Refrence in Header und cpp

text.txt

aaa 
bbb 
ccc 

main.cpp

include "read.h" 
include <iostream> 
include <string> 

using namespace std; 

int main() { 

string output; 

Read read(line); 

while (getline(cin, line)) { 
    Read.run(); 
    ... 
    ... 
} 

Read.cpp

include "Read.h" 
include <iostream> 

using namespace std; 

Read::Read(string& input) : currentLine(input) { 
} 

void Read::run() { 
    cout << "currentLine:" << currentLine << "\r\n";   
} 

Read.h

Wenn ich dieses Programm in cmd ausführen: Programm < test.txt die GEGENWÄRTIGE_ZEILE nicht über Wert

+0

in Lesen lesen (Zeile); Was ist Linie? –

+0

Parser (std :: string & s); sollte gelesen werden (Std :: string & s);? –

+0

void advance(); sollte void sein run() ;?: D –

Antwort

0
string output; 

Read read(line); 

while (getline(cin, line)) { 
    Read.run(); 
    ... 
    ... 
} 

Sie setzen read.currentLine-input (im Konstruktor), aber currentLine ist keine Referenz , so wird es nur kopiert, was zu einer leeren Zeichenfolge führt. Machen Sie currentLine eine Referenz zu. Aber hüte dich vor baumelnden Referenzen.

Verwandte Themen