我有一个大学的作业,我有一个包含多个值的文本文件 . 它们在不同的行上,我必须将它们存储在Vector中 . 我们还必须使用已经设置了ifstream,ofstream和int Vector的类,但这些类在Class的私有部分中,我似乎无法使用它们(不允许更改类!) . 我们在via getline中获取了值,但现在需要将它们从字符串转换为int,但问题是我们不允许添加更多库 . 我们被允许使用的库是:
iostream
string
fstream
vector
任何帮助转换这些将非常感谢!
以下是简要介绍:
程序1编写一个包含满足以下声明的类的程序(即该声明应放在cpp文件的顶部):您的程序应该从名为'sales.txt'的文件中读取销售值并输出一个条将这些值表示为名为“graph.txt”的文件的图形 . 通过显示一行星号在条形图中创建每个条形 . 每个星号应代表100英镑的销售额 . 例如,'sales.txt'文件包含以下值:1000
500
1200
600
200
以下是程序执行后'graph.txt'文件应包含的内容:SALES BAR CHART
(每个等于100英镑)
商店1:*********
商店2:*****
店铺3:************
店铺4:******
商店5:**
这是我们不允许改变的类:
#pragma once
#include<iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;
class SalesData
{
private:
ifstream inputfile;
ofstream outputfile;
vector<int> salesrecords;
public:
void loadDataFromFile(string filename);
void saveBarChartToFile(string filename);
};
我现在已完全跳过课程并创建了新的ifstream / ofstream和向量 . 输出我工作正常,我正在努力的输入!
void loadDataFromFile()
{
ifstream inputfile;
vector<int> salenumbers;
int holder;
inputfile.open("sales.txt");
if (!inputfile.is_open())
{
cout << "Text Not Open Error!";
}
else
{
string line;
vector<string> text;
int i = 0;
while (inputfile.good())
{
getline(inputfile, line);
text[i] = line;
i++;
}
for (int z = 0; z <= 5; z++)
{
int num = atoi(text.at(z).c_str());
salenumbers.push_back(num);
}
}
inputfile.close();
saveBarChartToFile(salenumbers);
}
我已经尝试了多种方式,比如直接将它直接插入到int矢量中并且它们没有用 . 我找到了许多方法将字符串更改为int,但它需要更多的库 .
此外,如果我可以使用该类,它将使它更容易 .
我打算提出一个新问题,但它不会让我这样添加到这个问题:
我有一个函数输出到我正在使用cout测试的文件,它在屏幕上工作得很好 . 现在我已将其更改为输出到文件,但文件中没有任何内容 .
想知道是否有人能看到错误:
void saveBarChartToFile(vector<int>numbers)
{
ofstream outputfile;
outputfile.open("graph.txt", std::ios_base::app);
if (!outputfile.is_open())
{
cout << "FILE NOT OPEN ERROR!";
}
else
{
for (int i = 0; i < numbers.size(); i++)
{
int stars = 0;
int starAmount = numbers[i] / 100;
outputfile << "Shop" << (i + 1) << ":";
for (int j = 0; j < starAmount; j++)
{
outputfile << "*";
}
outputfile << "/n";
}
outputfile.close();
}
}
1 回答
你应该直接读取整数 .
这应该继续读取整数并将它们保存到文件末尾 . 试试这个逻辑而不是块
关于新的“问题” . 我可以生成文件,其内容例如在我的情况下:
Shop1:********** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ** / nShop2:********* ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ***** / nShop3:*********** ************************************ ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ************************************************** ********************** / N
使用此测试代码: