Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从Vector操作文件数据,然后输出新的 要求:_C++_File_Vector_File Io - Fatal编程技术网

C++ 从Vector操作文件数据,然后输出新的 要求:

C++ 从Vector操作文件数据,然后输出新的 要求:,c++,file,vector,file-io,C++,File,Vector,File Io,我有一个文件,file.txt。我必须从这个文件中读取数据,进行一些计算,然后将数据输出到new.txt file.txt的内容(不包含带括号的第一行,这只是为了理解表格的排列): new.txt的内容必须包含ID、当前库存(等于以前的库存-售出的库存)以及使库存达到所需数量所需的金额。多亏了以前的论坛帖子和StackOverflow,我知道如何读取数字,但我不知道如何包含项目(#),因为我对如何混合和匹配整数和字符/字符串一无所知 方法: 创建一个2D矢量,打开输入文件并将其读入filestr

我有一个文件,
file.txt
。我必须从这个文件中读取数据,进行一些计算,然后将数据输出到
new.txt

file.txt的内容(不包含带括号的第一行,这只是为了理解表格的排列):

new.txt
的内容必须包含ID、当前库存(等于以前的库存-售出的库存)以及使库存达到所需数量所需的金额。多亏了以前的论坛帖子和StackOverflow,我知道如何读取数字,但我不知道如何包含项目(#),因为我对如何混合和匹配整数和字符/字符串一无所知

方法: 创建一个2D矢量,打开输入文件并将其读入filestream
fileIn
,将每一行读入一个
字符串,将每一行的数据读入一个新矢量
lineData
,然后将其合并并写入
new.txt
的文件流中

代码:
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
//2D矢量;在此处读取所有输入文件的数据
矢量数据读取器;
//要从中读取数据的文件
ifstreamfilein;
fileIn.open(“file.txt”);
弦线;
//将每行读入字符串变量
while(getline(fileIn,line))
{
矢量线数据;
线状流线状流(线状);
int值;
//从行中一次读取一个整数
while(lineStream>>值)
{
//行中的数字->向量
lineData.push_back(值);
}
//将lineData合并到dataToRead中
dataToRead.推回(lineData);
}
//将数据复制到new.txt中
流文件输出;
open(“new.txt”,ios::out | ios::binary);
ostream_迭代器输出_迭代器(fileOut,“\t”);
对于(int i=0;ilineStream>>object.id>>object.pevious>>object.sall>>object.required
)。
(ID) (previous stock) (stock sold) (required stock)
item1 96 48 51
item2 321 163 201
item3 35 21 26
item4 164 151 161
#include <vector>
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
#include <iterator>

using namespace std;

int main()
{
    // 2D vector; read all input file's data into here
    vector <vector <int>> dataToRead;

    // file to read data in from
    ifstream fileIn;
    fileIn.open("file.txt");

    string line;
    // read each line into string variable
    while (getline(fileIn, line))
    {
        vector <int> lineData;
        stringstream lineStream(line);

        int value;
        // Read an integer at a time from the line
        while(lineStream >> value)
        {
            // numbers in line -> vector
            lineData.push_back(value);
        }
        // combine lineData into dataToRead 
        dataToRead.push_back(lineData);
    }

    // copy out dataToRead into new.txt
    ofstream fileOut;
    fileOut.open("new.txt", ios::out | ios::binary);    
    ostream_iterator <int> output_iterator(fileOut, "\t");
    for (int i = 0; i < dataToRead.size(); i++) 
    {
        copy(dataToRead.at(i).begin(), dataToRead.at(i).end(),
             output_iterator);
        fileOut << endl; // newline after each row
    }
    
    // close files
    fileIn.close(); 
    fileOut.close();

}