2014-11-06 79 views
0

到目前为止,我可以打开一个txt文件并将它们存储为变量。如何读取文件行并将其存储? C++

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 

如何修改我的代码,这样就可以通过线读取我的文件中的行并将其存储在它的变量?

+2

它应该这样做。它忽略了换行符所包含的空格。 – 2014-11-06 11:43:06

+1

你为什么不把if(inputfiles.is_open())'和if里面的while放在一起,如果你可以删除'else'? – bitcell 2014-11-06 11:43:07

+0

可能重复的[this](http://stackoverflow.com/questions/7868936/read-file-line-by-line) – ha9u63ar 2014-11-06 11:46:52

回答

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

在主要功能,使用写入功能

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

请记住,如果您使用写操作,请始终使用read函数来打印数据库值。

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

如果你想存储文本,因为它是没有转换...使用put函数。

相关问题