鱼C论坛

 找回密码
 立即注册
查看: 1911|回复: 2

[已解决]这里为什么会输出两次啊?

[复制链接]
发表于 2018-4-7 22:35:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
#include <fstream>
#include <Cstdlib>
#include <string>

using namespace std;

typedef struct information
{
    string name;
    string pnumber;
}IF;

int main()
{
    system("color 3F");

    IF p;

    p.name="叶行建";
    p.pnumber="17671860463";

    ofstream ofile("f:\\Addresslist1.txt");

    ofile.write((char *)&p, sizeof(IF));

    ofile.close();

    IF q;

    ifstream file("f:\\Addresslist1.txt");


    while(!file.eof())
    {
        file.read((char *)&q, sizeof(IF));

        cout<<q.name<<endl;
        cout<<q.pnumber<<endl;
    }

    file.close();

    return 0;
}

这里的信息会输出两次!为什么啊?
最佳答案
2018-4-8 11:43:19
当读到最后一个字符时,程序会多读一次(编译器会让指针停留在最后一个字符那里,然后重复读取一次)

参考:
https://www.cnblogs.com/kaituo/p/5021673.html
@AAF}U1LUCZ@E1OP7W)475R.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-8 11:43:19 | 显示全部楼层    本楼为最佳答案   
当读到最后一个字符时,程序会多读一次(编译器会让指针停留在最后一个字符那里,然后重复读取一次)

参考:
https://www.cnblogs.com/kaituo/p/5021673.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-8 17:32:13 | 显示全部楼层
BngThea 发表于 2018-4-8 11:43
当读到最后一个字符时,程序会多读一次(编译器会让指针停留在最后一个字符那里,然后重复读取一次)

参 ...

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-1 19:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表