[問題] 利用scanf讀string的問題

看板C_and_CPP (C/C++)作者 (薰)時間12年前 (2013/10/31 00:30), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 使用while(scanf("%s%s", string1,string2) != EOF) 想要一次讀入兩個string 但似乎都不成功,用print印出來都會變成string2的一部分 例如輸入3400 & 3999 printf string1 & string2 會跑出 999 & 3999 餵入的資料(Input): ex. 3400 3999 預期的正確結果(Expected Output): 3400 3999 錯誤結果(Wrong Output): 999 3999 程式碼(Code):(請善用置底文網頁, 記得排版) int main(void) { char string1[] = "",string2[] = ""; while (scanf("%s %s", string1,string2) != EOF){ printf("%s\n", string1); printf("%s\n", string2); } return 0; } 補充說明(Supplement): 我剛學C不久,對C並不是很熟悉 麻煩版友幫我解惑 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.163.21

10/31 00:32, , 1F
你的寫法相當於 char string1[1]= " ";
10/31 00:32, 1F

10/31 00:33, , 2F
只配置了1格的空間給string1, 輸入超過就爆炸囉~
10/31 00:33, 2F

10/31 00:39, , 3F
了解!非常感謝!!!!
10/31 00:39, 3F

10/31 00:41, , 4F
我第一行寫錯了, 是 char string[1]="" (多打一個空格)
10/31 00:41, 4F
文章代碼(AID): #1ISJGkT4 (C_and_CPP)
文章代碼(AID): #1ISJGkT4 (C_and_CPP)