我有这个功能:
void readClauses( ){
char c = cin.get();
while (c == 'c') {
while (c != '\n') c = cin.get();
c = cin.get();
}
string ccc;
cin >> ccc >> numVars >> numClauses;
clauses.resize(numClauses);
for (uint i = 0; i < numClauses; ++i) {
int literals;
while (cin >> literals and literals != 0) clauses[i].push_back(literals);
}
}
我想在此函数中执行相同的操作,而是将我想从txt文件中读取的文本数字化。有人可以帮帮我吗?
答案 0 :(得分:1)
创建ifstream的对象。
ifstream fin; //I named it fin, similar to cin
现在打开要从
输入的文件string file="input.txt";
fin.open(file,ios::in);
其中file是文件的名称。该文件必须存在于c ++文件的输出目录中,否则您需要提供完整路径。现在替换所有&#34; cin&#34;与&#34; fin&#34;。请记住在您的文件中写下您的输入。最后关闭使用ifstream打开的文件。
fin.close();
现在您的代码如下所示:
void readClauses( ){
char c = fin.get();
while (c == 'c') {
while (c != '\n') c = fin.get();
c = fin.get();
}
string ccc;
fin >> ccc >> numVars >> numClauses;
clauses.resize(numClauses);
for (uint i = 0; i < numClauses; ++i) {
int literals;
while (fin >> literals and literals != 0) clauses[i].push_back(literals);
}
}
不要忘记包含fstream文件:
#include<fstream>