我正在打开一个文件,并从中获取行。第一行应该说明有多少变量,以及它们的名称。第二行应该是使用这些变量的逻辑方程。任务是让它打印出变量和方程的真值表。
如果我没有插入新的行字符,程序接收的第一行就不会打印。我尝试转换为字符串并同时使用 printf 和 cout。
输入所有内容的主文件:
#include "truthTable2.h"
int main(int argc, const char* argv[]){
ifstream inFile;
if(argc != 2){
cout << "Enter an input file name: ";
char *inFileName = "";
cin >> inFileName;
inFile.open(inFileName);
}
else
inFile.open(argv[1]);
TruthTable tTable;
while(!inFile.eof()){
char variableLine[256];
inFile.getline(variableLine, 256);
printf("%s ", variableLine);
string variable(variableLine);
tTable.setVariables(variable);
char formulaLine[256];
inFile.getline(formulaLine, 256);
cout << formulaLine << "\n";
string formula(formulaLine);
tTable.setFormula(formula);
tTable.printTable();
}
inFile.close();
return 0;
}
样本输入:
2 x y
( \wedge x ( \not y ) )
输出:
( \wedge x ( \not y ) )
我认为无论是什么原因造成的,都会在整个程序的其余部分给我带来问题。在我对 variableLine 进行标记后,它不会在没有换行符的情况下打印,并且在评估公式时找不到第二个变量。