我在完成一些编码工作时遇到了很多麻烦,希望有人能引导我朝着正确的方向前进。如果这个问题发布在别处,我会提前道歉。我真的不知道如何用短语来表达类似的东西。问题是我试图通过几个布尔函数从.txt文件运行一些数字,这会将结果输出到另一个.txt文件。我遇到的问题是它只是输出到outfile的最后一行。我试着向我的教授询问这个问题,而且我无法解决这个问题(这让我很沮丧)。
这是我的代码,我上传了一张图片来显示已创建的文本文件。
if(!inFile){
cout << "error opening file\n";
}
else
{
while (inFile) {
(inFile >> hour >> min);
(cout << hour << ":" << min << endl);
bool validate_hour(hour);
bool validate_minute(min);
inFile.ignore(1);
}
outFile.open("time_Validation.txt", ios::out | ios::app);
if (validate_hour(hour) == true && validate_minute(min) == true) {
outFile << hour << ":" << min << " hour is valid and minute is valid\n";
}
else if (validate_hour(hour) == false && validate_minute(min) == true) {
outFile << hour << ":" << min << " hour is invalid and minute is valid\n";
}
else if (validate_hour(hour) == true && validate_minute(min) == false)
{
outFile << hour << ":" << min << " hour is valid and minute is invalid\n";
}
else if (validate_hour(hour) == false && validate_minute(min) == false)
{
outFile << hour << ":" << min << " hour is invalid and minute is invalid\n";
}
outFile.close();
感谢您提供给我完成此实验的任何帮助。谢谢你的期待。
感谢大家的意见。我按照建议改变了while(inFile) to while (inFile >> hour >> min)
。显然,我需要更多的while循环练习。再次感谢所有给我建议的人,这对完成我的代码非常有帮助。
答案 0 :(得分:0)
outfile.open("time_validation.txt",ios::out | ios::app);
while(!infile)
cout << "file does not exist" << endl;
while(infile)
{
infile >> hour >> min;
if(validate_hour(hour))
outfile << hour << " hour is valid ";
else
outfile << hour << " hour is invalid ";
if(validate_minute(minute))
outfile << minute << " minute is valid \n";
else
outfile << minute << " minute is invalid \n";
}
这样的东西应该有效,因为你还没有发布完整的代码,我不知道程序在文件中写了多少次,据我所知,你只是在验证了所有的文件之后才输出一次文件输入,而你应该为每个输入循环输出文件。