带有字符串和浮点数的 C++ 文件 IO

10110

我正在学习 C++ 中的一些文件 io。我创建了一个class person和两个函数writeread

write正确地进入文件,但是当我想read初始化person对象时,read它只能在第一次运行时工作。

我认为这与float age变量有关。

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

using namespace std;

class person{
public:
    person();
    person(string, string, float);

    string getName();
    string getAddress();
    float  getAge();

    void setName(string);
    void setAddress(string);
    void setAge(float);

    ~person();

private:    
    string name, address;
    float age;    
};

person::person(){
    //NOTHING TO DO.
}

person::person(string NAME, string ADD, float AGE) 
: name(NAME), address(ADD), age(AGE){
    //NOTHING TO DO.
}

string person::getName(){
    return name;
}
string person::getAddress(){
    return address;
}
float person::getAge(){
    return age;
}

void person::setName(string NAME){
    name = NAME;
}
void person::setAddress(string ADD){
    address = ADD;
}
void person::setAge(float AGE){
    age = AGE;
}

void write(person* pA[], int sz){
    ofstream myfile("people.txt", ios::trunc);
    for(int i = 0; i < sz; i++){
        myfile << pA[i]->getName()    << endl
                << pA[i]->getAddress() << endl
                 << fixed << setprecision(2)
                  << pA[i]->getAge()    << endl;
    }     
}
person* read(ifstream & myfile){
    person* p = new person();
    string name, address;
    float age;

    getline(myfile, name);
    getline(myfile, address);
    myfile >> age;

    p->setName(name);
    p->setAddress(address);
    p->setAge(age);

    return p;
}

int main() {
    person* p0 = new person("Edward Jones", "Los Angeles", 22.2);
    person* p1 = new person("Floyd Mayweather", "Las Vegas", 26);
    person* p2 = new person("Jane Doe", "Paris", -99);

    int sz = 3; //size of array.
    person* pA[3];

    pA[0] = p0;
    pA[1] = p1;
    pA[2] = p2;

    write(pA,sz);

    person* newP0;
    person* newP1;
    person* newP2;

    ifstream myfile("people.txt");

    newP0 = read(myfile);
    newP1 = read(myfile);
    newP2 = read(myfile);

    myfile.close();

    cout 
    << newP0->getName() << endl << newP0->getAddress() << endl << newP0->getAge()
    << newP1->getName() << endl << newP1->getAddress() << endl << newP1->getAge()
    << newP2->getName() << endl << newP2->getAddress() << endl << newP2->getAge();

    return 0;
}

感谢您的帮助,当然这对你们大多数人来说看起来像是一场代码噩梦,我深表歉意。我知道这是非常基本的。

谢谢!

马克西姆·叶戈鲁什金

由于此代码将 的每个成员Person作为单独的行写入,因此也应将其作为行读回。

代替:

myfile >> age;

做:

string age_str;
getline(myfile, age_str);
std::istringstream(age_str) >> age;

person* pA[2];
pA[0] = p0;
pA[1] = p1;
pA[2] = p2; 

pA[2] = p2 写入破坏堆栈的数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试在C中使用sscanf()从文件中读取浮点数,整数和字符串的列表无法正常工作

来自分类Dev

将带有字符串的文件转换为浮点数,然后添加它们

来自分类Dev

C ++银行项目;我如何从文件中读取字符串转换为浮点数并加总

来自分类Dev

将带有字符串和浮点数据的文本文件读取并存储到哈希图中

来自分类Dev

C ++将字符串,整数,浮点数从文本文件中读取到数组/字符串中

来自分类Dev

使用 Python Pandas 读取 .txt 文件 - 字符串和浮点数

来自分类Dev

替换在字符串中具有浮点数的变量并写入新文件 Python

来自分类Dev

解析浮点数的C字符串

来自分类Dev

C字符串和(整数,双精度数,浮点数)之间的动态分配

来自分类Dev

无法在C中的单行中将字符串和浮点数作为输入

来自分类Dev

如何在C中将浮点数转换为没有sprintf的字符串?

来自分类Dev

读取带有浮点数的文件,计算C中的大小,最大值,最小值,平均值,中位数和标准偏差

来自分类Dev

使用System.IO.StreamWriter和长字符串Json的C#文件限制

来自分类Dev

将4D浮点数组从txt(字符串)文件转换为numpy浮点数组

来自分类Dev

在同一列中读取包含浮点数,整数和字符串的文本文件

来自分类Dev

如何将具有浮点数的文本文件读取到C中的浮点数组

来自分类Dev

在C ++中,如何从1行中获取字符串,浮点数和整数的输入?

来自分类Dev

如何从文件中获取整数-字符串-浮点数?

来自分类Dev

从文件到字典以浮点数而不是字符串的形式读取

来自分类Dev

如何从文件中获取整数-字符串-浮点数?

来自分类Dev

csv 文件在写入浮点数时给出字符串

来自分类Dev

从 Python 中的 csv 文件读取时将字符串转换为整数/浮点数

来自分类Dev

在 CSV 文件中将字符串转换为浮点数时出错

来自分类Dev

使用Python读取带有日期对象和浮点数的逗号分隔文件

来自分类Dev

使用Python读取带有日期对象和浮点数的逗号分隔文件

来自分类Dev

如何在C中的用户输入字符串中将浮点数/整数加倍?

来自分类Dev

将浮点数转换为字符串的最快C ++方法

来自分类Dev

如何在C#中将字符串拆分为浮点数?

来自分类Dev

将浮点数传递到C中的字符串中

Related 相关文章

  1. 1

    尝试在C中使用sscanf()从文件中读取浮点数,整数和字符串的列表无法正常工作

  2. 2

    将带有字符串的文件转换为浮点数,然后添加它们

  3. 3

    C ++银行项目;我如何从文件中读取字符串转换为浮点数并加总

  4. 4

    将带有字符串和浮点数据的文本文件读取并存储到哈希图中

  5. 5

    C ++将字符串,整数,浮点数从文本文件中读取到数组/字符串中

  6. 6

    使用 Python Pandas 读取 .txt 文件 - 字符串和浮点数

  7. 7

    替换在字符串中具有浮点数的变量并写入新文件 Python

  8. 8

    解析浮点数的C字符串

  9. 9

    C字符串和(整数,双精度数,浮点数)之间的动态分配

  10. 10

    无法在C中的单行中将字符串和浮点数作为输入

  11. 11

    如何在C中将浮点数转换为没有sprintf的字符串?

  12. 12

    读取带有浮点数的文件,计算C中的大小,最大值,最小值,平均值,中位数和标准偏差

  13. 13

    使用System.IO.StreamWriter和长字符串Json的C#文件限制

  14. 14

    将4D浮点数组从txt(字符串)文件转换为numpy浮点数组

  15. 15

    在同一列中读取包含浮点数,整数和字符串的文本文件

  16. 16

    如何将具有浮点数的文本文件读取到C中的浮点数组

  17. 17

    在C ++中,如何从1行中获取字符串,浮点数和整数的输入?

  18. 18

    如何从文件中获取整数-字符串-浮点数?

  19. 19

    从文件到字典以浮点数而不是字符串的形式读取

  20. 20

    如何从文件中获取整数-字符串-浮点数?

  21. 21

    csv 文件在写入浮点数时给出字符串

  22. 22

    从 Python 中的 csv 文件读取时将字符串转换为整数/浮点数

  23. 23

    在 CSV 文件中将字符串转换为浮点数时出错

  24. 24

    使用Python读取带有日期对象和浮点数的逗号分隔文件

  25. 25

    使用Python读取带有日期对象和浮点数的逗号分隔文件

  26. 26

    如何在C中的用户输入字符串中将浮点数/整数加倍?

  27. 27

    将浮点数转换为字符串的最快C ++方法

  28. 28

    如何在C#中将字符串拆分为浮点数?

  29. 29

    将浮点数传递到C中的字符串中

热门标签

归档