Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.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++ 在流中存储数据而不打开文件_C++ - Fatal编程技术网

C++ 在流中存储数据而不打开文件

C++ 在流中存储数据而不打开文件,c++,C++,有没有一种方法可以将数据存储到流中,如: #include <fstream> int main() { std::ofstream output; std::ifstream input("myfile.txt"); int a; for (int i=0;i<100;i++) { input >> a; output << a+1; } input.close()

有没有一种方法可以将数据存储到流中,如:

#include <fstream>

int main() {
    std::ofstream output;
    std::ifstream input("myfile.txt");

    int a;

    for (int i=0;i<100;i++) {
        input >> a;
        output << a+1;
    }

    input.close();

    output.open("myfile.txt");
    // Save everything to the file and close it

}
#包括
int main(){
std::流输出;
std::ifstream输入(“myfile.txt”);
INTA;
对于(int i=0;i>a;

输出您可以将数据保存在内存中,然后覆盖旧文件

    ifstream input("myfile.txt");

    int a;
    vector<int> vin;

    for (int i=0;i<100;i++) {
        input >> a;
        vin.push_back(a+1);
    }

    input.close();
    ofstream out("myfile.txt");
    for(int i=0;i<vin.size();++i)
    {
      out<<vin[i]<<endl;
    }
ifstream输入(“myfile.txt”);
INTA;
矢量vin;
对于(int i=0;i>a;
vin.推回(a+1);
}
input.close();
流输出(“myfile.txt”);
对于(int i=0;i您可以先写入内存中的输出流。然后将内容写入另一个流,例如:

std::ostringstream in_memory_stream;

// fill in_memory_stream
// ...

// copy in_memory_stream into myfile.txt
std::ofstream file("myfile.txt");
file << in_memory_stream.rdbuf();
std::内存流中的ostringstream\u流;
//填充内存流
// ...
//将内存中的\u流复制到myfile.txt
std::of流文件(“myfile.txt”);

如果您拥有当前的非标准文件系统设施,那么临时文件方法可能是最好的+1@BaummitAugen如果没有,我会感到惊讶。请看@MaximEgorushkin我知道这不应该是一个问题,但作为一个在工作中编写C90的人,我知道有些人对他们可以使用的东西有奇怪的限制/