Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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++;_C++_Fstream_Ifstream_Ofstream - Fatal编程技术网

C++ 如何保存文件中的所有数据?C++;

C++ 如何保存文件中的所有数据?C++;,c++,fstream,ifstream,ofstream,C++,Fstream,Ifstream,Ofstream,我遇到一个问题,我想在文本文件中保存所有ID号,但它只保存用户输入的最后一个ID号 #include <iostream> #include <fstream> #include <iomanip> #include <string> using namespace std; int main() { string line; int idnum; ofstream IdData ("data.txt");

我遇到一个问题,我想在文本文件中保存所有ID号,但它只保存用户输入的最后一个ID号

#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>

using namespace std;

int main()
{

    string line;
    int idnum;
    ofstream IdData ("data.txt");

    cout<<" Enter your ID number: "<<endl;
    cin>>idnum;

    if(IdData.is_open())
    {
        IdData<< "ID number of voter is: ";
        IdData << idnum << endl;
        IdData.close();
    }
    else 
        cout<<" Unable to open file";


    ifstream Data ("data.txt");

    if(Data.is_open())
    {
        while (getline (Data, line))
        {
            cout<< line << endl;
        }

        Data.close();
    }
    else
        cout<<" Unable to open file";
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
弦线;
int-idnum;
流IdData(“data.txt”);

cout您只要求用户提供1个ID,然后使用包含该ID的新文件覆盖现有文件

std::ofstream
会销毁现有文件的内容,除非您明确要求它不要这样做。因此,对于您尝试执行的操作,要在现有文件的末尾附加新ID,您需要在打开
std::ofstream
时包含
app
ate
标志,例如:

流IdData的
(“data.txt”,ios::app);
或:

流IdData的
(“data.txt”,ios::ate);

您只要求用户提供一个ID,然后用包含该ID的新文件覆盖现有文件

std::ofstream
会销毁现有文件的内容,除非您明确要求它不要这样做。因此,对于您尝试执行的操作,要在现有文件的末尾附加新ID,您需要在打开
std::ofstream
时包含
app
ate
标志,例如:

流IdData的
(“data.txt”,ios::app);
或:

流IdData的
(“data.txt”,ios::ate);

当你说“最后一个”身份证号码时,你的意思是什么?你只要求一个身份证号码!是的,但在文本文件中,我想看到不同用户键入的所有身份证号码。如果
IdData
无法打开,你的程序在打印消息后继续。你可能想在打印后使用
return EXIT\u FAILURE;
正在关闭消息。当您说出“最后一个”ID号时,您的意思是什么?您只需要一个ID号!是的,但在文本文件中,我希望看到不同用户键入的所有ID号。如果
IdData
无法打开,您的程序将在打印消息后继续运行。您可能需要使用
return EXIT\u FAILURE;
r打印消息。