[問題] 我想寫一個掃描字串的程式...

看板C_and_CPP作者 (流浪者)時間16年前 (2009/10/29 13:53), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題:想寫一個能掃描使用者輸入的字串的程式 開發平台:visual C++ 2005 on Windows XP 我想寫一個能讓使用者輸入一串字串,例如 A C -> D (中間可用space隔開)然後可以判斷 A和C是一個群組, D是另一個群組... 原本想用一個指標指向儲存輸入的字串陣列並做處理,不過沒有成功... code: #include <iostream> #include <iomanip> #include <string> #include <stdio.h> using namespace std; void main() { char input_s[255]; //用來儲存輸入 char* sp=&input_s[0]; cout <<"Please input Functional Dependency:"<< endl; scanf("%s",input_s); cout << sp; system("PAUSE"); } 這樣當我輸入 A C -> D 時只有輸出A, C應該是中間有一個space的關係不見了...也就是 讀不到space後面的字串... 難到只能靠for loop掃描input_s[255]這個陣列來做嗎?有更好的作法嗎? 這是一個資料庫的問題,我想將"->"左側的 A 和 C 判斷成一個group,右邊的D判斷成另 一個group.目前在掃描字串遇上問題. 請各位幫忙. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 72.229.53.41

10/29 13:57, , 1F
用fgets整行讀進來 用sscanf去parse
10/29 13:57, 1F

10/29 13:58, , 2F
如果你嫌sscanf功能不夠強大 還有Boost::Regex
10/29 13:58, 2F

10/29 14:05, , 3F
cin.getline?? 話說為什麼C/C++ IO混在一起用啊@_@"
10/29 14:05, 3F

10/29 14:20, , 4F
唔...上面的scanf改成cin吧.不過我找了一下fgets有3個
10/29 14:20, 4F

10/29 14:23, , 5F
參數,第三個是一個指向檔案的指標...我想用鍵盤做輸入
10/29 14:23, 5F

10/29 14:26, , 6F
就好了.
10/29 14:26, 6F

10/29 14:28, , 7F
檔案設stdin不就結了
10/29 14:28, 7F

10/30 02:03, , 8F
謝謝大家的建議...我決定用sscanf上去試試看
10/30 02:03, 8F
文章代碼(AID): #1AwItUFf (C_and_CPP)