2014-11-06 77 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函數。

相關問題