音频线 发表于 2018-4-7 22:35:17

这里为什么会输出两次啊?

#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;
}

这里的信息会输出两次!为什么啊?

BngThea 发表于 2018-4-8 11:43:19

当读到最后一个字符时,程序会多读一次(编译器会让指针停留在最后一个字符那里,然后重复读取一次)

参考:
https://www.cnblogs.com/kaituo/p/5021673.html

音频线 发表于 2018-4-8 17:32:13

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

参 ...

谢谢!
页: [1]
查看完整版本: 这里为什么会输出两次啊?