【问题标题】:How to read file lines and store them? C++如何读取文件行并存储它们? C++
【发布时间】:2014-11-06 11:38:25
【问题描述】:

到目前为止,我能够打开一个txt 文件并将它们存储为变量。

我的txt 文件如下所示

Tim, 24, Male

我已经能够将它们存储为变量,例如nameagegender

这是我的代码

ifstream inputfiles ("test.txt");
    if(!inputfiles.is_open())
    {

    }
    else
    {
        while(inputfiles >> name >> age >> gender)
        {
            cout << name << "\n";
            cout << age << "\n";
            cout << gender << "\n";
        }

但是,当我的 txt 文件看起来像这样时,我的代码不会将值存储为变量...

Tim
24
Male

如何修改我的代码,以便它可以逐行读取我的文件并将其存储在其变量中?

【问题讨论】:

  • 应该可以。它会忽略换行符所属的空格。
  • 你为什么不把 if(inputfiles.is_open()) 这样的 if 和 while 放在 if 里面,这样你就可以删除 else
  • 可能与this重复
  • 试过了吗?
  • 参见stackoverflow.com/a/15089622/1769720 以简单地标记逗号分隔的行

标签: c++ char ifstream


【解决方案1】:

如果我是对的,你想像这样存储它:

  1. 蒂姆 24 男
  2. 约翰 25 男

使用类

    class data
    {
        public:
        char name[10],gen;
        int age;
        void getdata()
        {
            cout<<"Enter Name";
            gets(name);
            cout<<Enter age";
            cin>>age;
            cout<<"enter gender";
            cin>>gen;
        }
        void putdata()//use cout statements here
        {
        //put cout statements
        }
    };

现在在你的 main 函数中,使用 write 函数

fstream f;
f.open("YourFile.txt",ios::in|ios::out);    
data r;    
for(i=0;i<10;i++)
{
    r.getdata();
    f.write((char*)&r,sizeof(r));
}

请记住,如果您使用写入,请始终使用读取功能来打印数据库值。

f.seekg(0,ios::beg);
while(!f.eof())
{
   f.read((char*)&r,sizeof(r));
}

如果您想按原样存储文本而不进行转换...使用 put 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多