如何在header和cpp的构造函数中传递字符串作为引用 使用cin获取文本文件中的行。 通过执行此命令提示符:program<的test.txt
的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
class Read{
public:
std::string currentLine;
Parser(std::string& s);
void advance();
}
当我在cmd中执行此程序时: 程序&lt;的test.txt currentLine没有值
答案 0 :(得分:0)
string output;
Read read(line);
while (getline(cin, line)) {
Read.run();
...
...
}
您将read.currentLine
设置为input
(在构造函数中),但currentLine
不是引用,因此只会复制它,从而产生一个空字符串。也可以currentLine
作为参考。但要注意悬挂参考文献。