ಠ_ಠ
【詢問】
想請問幾個關於struct與string的問題
ಠ_ಠ
想請問輸入多行會員資料(每行有會員名字、生日、電話號碼)應該要怎麼處理才好?(尤其是逗號、斜線與連結號的部分)
ಠ_ಠ
https://images.plurk.com/77zAHBHkdmkMJDJUi1yz1X.png
我目前輸入的部分寫成這樣
想用for迴圈重複輸入(直到n)好像會怪怪的
但用while(cin>>)也沒辦法成功,想請問是哪裡的思路有問題嗎?
ಠ_ಠ
yam8896
string input;
char c;
while(cin<<c){
if(c!=‘,’) input+=c;}
yam8896
這樣就可以用逗號分開資料了
ಠ_ಠ
yam8896: 謝謝旅人!我去寫寫看
還想請問若要重複輸入n行,該怎麼做比較好呢?
yam8896
重複輸入的話用while(cin)就可以了,只是這只是幫你把輸入用逗號分開,然後拿到的資料再看你要怎麼分
yam8896
然後這樣的輸入方式
要結束輸入的話要用ctrl+z+enter來結束
ಠ_ಠ
yam8896: 好><非常感謝yam旅人,我來去研究看看!
ಠ_ಠ
yam8896: 因為他有多筆資料(我是透過Struct存)
https://i.imgur.com/WbBnxuE.png
但這樣我把資料一個一個分開後好像就不太適合用input+=c了QQ
yam8896
C是 char 不能用上面type.name這樣寫
你這樣寫只能適用於string且用空格分開的資料,這樣的話名字的姓和名會被分成兩個資料
yam8896
string input;
char c;
while(cin<<c){
if(c!=‘,’) input+=c;
else{ //當輸入的字元是逗號,把當前的string存成想要的資料
// 用count 當作資料的編號 1 是名字 2是日期等等的
// 我沒寫完不要照抄會error
if(count=1) member. name=input;

}
}
ಠ_ಠ
yam8896: 像是用空格來判斷count嗎?
我剛剛有看到有人說可以試試看
cin.getline()讀整行
再用strtok()來分割substring,再分配到struct裡,但好像真的會影響到名字等等(因為這題之後還要判斷姓氏字母順序、生日有沒有達到年齡、電話前四碼是否吻合><)
ಠ_ಠ
yam8896: !是不是將資料編號後再放進struct裡會比較好
yam8896
通常大部分都是用空格或換行當資料的分隔
yam8896
因為我懶得去查函示,所以直接簡單的粗暴用一個int count記你現在輸入到哪了
如果等於一的話現在把string input存struct member的名字
等於二的話string input存成struct member的電話
以此類推
ಠ_ಠ
yam8896: 我好像有感覺了!我來去寫寫QQ
yam8896
getline好像會存成string吧
我用的是讀取每一個字元char再把每一個char組成string
yam8896
啊char變string那邊應該要查一下有什麼函式可以直接套
ಠ_ಠ
yam8896:
好的!!真的非常感激旅人><
不好意思占用您的時間
我繼續想一下要怎麼寫 作業真的難到哭
載入新的回覆