【问题标题】:getting data from the input file to output to a file从输入文件中获取数据以输出到文件
【发布时间】:2020-11-29 00:53:22
【问题描述】:

这是我的代码,想知道为什么它不会从文件中读取。或者更好的问题是如何从文件中提取学生姓名。我做错了什么?

int semestersCompleted;
int gpa;
double semesterDiscount;
double semesterDiscount;
double gpaDiscount;
double totalDiscount;
string studentName;

int main(void)
{

    outFile << "Task 1 - tuition Discount" << endl;

    ifstream dataFile;
    ofstream outFile;

    getline(dataFile, studentName, '\n');

    dataFile >> semestersCompleted;
    dataFile >> gpa;


    dataFile.ignore(100, '\n');

    outFile << "Name: " << studentName << endl; 
    outFile << "Semester Completed: " << semestersCompleted << endl;
    outFile << "GPA: " << gpa << endl;
}

【问题讨论】:

  • 我们可以看看dataFileoutFile的输入文件和声明/初始化吗?
  • 感谢您发布整个程序。您似乎在声明一个 ifstream 和一个 ofstream,但实际上并没有让它们读取或写入任何文件。尝试添加dataFile.open("input_file");,然后添加outFile.open("output_file");
  • 你有没有用dataFile.open("foobar.txt")打开你的输入文件?
  • 所以对于每个人来说,我确实打开了文件,它在输出文件中打印了“任务 1 - 学费折扣”,只是没有读取输入文件来写出 studentName(我很抱歉还是个新手)
  • 检查文件是否用dataFile.is_open()打开。如果它返回 false,那么您就知道程序无法正确打开文件。如果输入文件在调试文件夹中,大多数 IDE 直接读取输入文件,否则使用文件路径。编辑:您的代码没有显示您的 dataFile 没有打开任何文件。

标签: c++ visual-studio visual-c++


【解决方案1】:

确保你打开输入文件

 ifstream dataFile;
 dataFile.open("Lab5ln-1.txt");
 

然后你可以从它读取输入

 dataFile >> semestersCompleted >> gpa;

当然,您会希望使用cout &lt;&lt; dataFile.is_open(); 之类的东西来确保文件正确打开,如果文件正确打开,它只会返回一个布尔值。如果它位于 IDE 的调试文件夹中(或在同一目录中),您可以仅使用文件名打开它,否则您可以使用完整路径打开它 - 即 dataFile.open("c:/foo/bar.txt")

【讨论】:

    猜你喜欢
    • 2014-03-06
    • 2016-02-08
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2014-10-18
    • 2012-10-31
    相关资源
    最近更新 更多