C++ 显示文件中存储的所有数据就是使用C+中的循环显示额外的数据+;文件处理

C++ 显示文件中存储的所有数据就是使用C+中的循环显示额外的数据+;文件处理,c++,file-handling,C++,File Handling,我正在控制台上制作一个联系人管理系统。我是初学者。我已使用文件处理[类:newContact,函数:void newcIn(在我的代码中)]将数据存储在文件中。当我显示文件中存储的所有数据时,它会显示一个额外的实体。我已经使用了while循环条件!read1.eof()` //创建新联系人 #包括 #包括 #包括 使用名称空间std; 流写入1,写入2; ifstream read1,read2; 类新联系人{ 受保护的: 字符串名,num; 公众: 新联系人(){ name=“没有名字”; n

我正在控制台上制作一个联系人管理系统。我是初学者。我已使用文件处理[类:newContact,函数:void newcIn(在我的代码中)]将数据存储在文件中。当我显示文件中存储的所有数据时,它会显示一个额外的实体。我已经使用了while循环条件!read1.eof()`

//创建新联系人
#包括
#包括
#包括
使用名称空间std;
流写入1,写入2;
ifstream read1,read2;
类新联系人{
受保护的:
字符串名,num;
公众:
新联系人(){
name=“没有名字”;
num=“1234567891011”;
}
void newcIn(){
write1.open(“contact.txt”,ios::out | ios::app);

cout发生这种情况的原因是,
newcIn()
插入了额外的一行空行。 您可以在写入联系人号码后删除
endl
。 它应该对你有用

    while (!read1.eof())
    {
        string name1, num1;
        getline(read1, name1);
        getline(read1, num1);

        if (!name1.empty() && !num1.empty())
        {
            cout << "Name : " << name1 << endl;
            cout << "Number : " << num1 << endl;
        }
    }
while(!read1.eof())
{
字符串名称1,num1;
getline(read1,name1);
getline(read1,num1);
如果(!name1.empty()&&!num1.empty())
{

当(!read1.eof())
这能回答你的问题吗?
    while (!read1.eof())
    {
        string name1, num1;
        getline(read1, name1);
        getline(read1, num1);

        if (!name1.empty() && !num1.empty())
        {
            cout << "Name : " << name1 << endl;
            cout << "Number : " << num1 << endl;
        }
    }