gpt4 book ai didi

c++ - 该程序应该创建一个包含结果的输出文件,但文件中没有任何内容

转载 作者:行者123 更新时间:2023-11-28 01:20:33 25 4
gpt4 key购买 nike

我的代码正在创建“output.txt”,但它没有将任何内容输出到文件中。

理想情况下,它应该读取一个文本文件,例如

游戏 2300.00 1000.00

糖果 1500.00 900.00

音乐 1500.00 1000.00

饮料 3000.00 2000.00

XXXXXX

并输出

按收入递减顺序报告-

游戏 1300

饮料 1000

糖果 600

音乐 500

统计:-

摊位数量:4

盈利摊位数:4

所有摊位的总利润:3400

摆摊盈利:音乐甜酒小游戏

#include <iostream>
#include <fstream> // for file streaming

using namespace std;


int main()
{


ifstream f; // this is a input file object
f.open("stalls.txt"); // open file with the f object

ofstream of; // this is a output file object
of.open("output.txt"); // open file "output.txt" with the of object

while (loop) {
f >> tmp.name; // read from the file

if (tmp.name == "xxxxxx") {
loop = false;
continue;
}

如果有人能告诉我我做错了什么以及为什么我的 output.txt 中没有任何内容,我将不胜感激

最佳答案

在您的输入文件中,您使用大写的“X”来标记文件的结尾,但在您的代码中,您正在检查小写的“x”。这就是为什么您的代码在输入循环期间遇到运行时错误并且从未真正到达打印输出部分的原因。

解决这个问题,你就会没事的。但我建议您检查 EOF 而不是使用“xxxxxx”来标记 EOF。为此,您无需标记输入文件的末尾,而是像这样编写输入 while:

while (f >> tmp.name) {
if (tmp.name == "xxxxxx") {
loop = false;
continue;
}

f >> tmp.income; // read income from the file
f >> tmp.expenses; // read expenses from the file

tmp.net = tmp.income - tmp.expenses;
tprofit_loss += tmp.net;

Stalls[n] = tmp;

n++;
}

关于c++ - 该程序应该创建一个包含结果的输出文件,但文件中没有任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56487142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com