看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) DEV C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 如標題所式 餵入的資料(Input): 自行輸入 錯誤結果(Wrong Output): 只輸出第一個字元就結束 程式碼(Code):(請善用置底文網頁, 記得排版) int main(int argc, char *argv[]) { int k,l; char input[50]; ... printf("輸入運算式:"); scanf("%s", input); type(input); ... system("PAUSE"); return 0; } 這裡我用%s是錯誤的嗎?? 比如我輸入 41 + 2 這樣有空格的地方就直接跳開了 而沒有繼續讀取下一個!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.229.184
diabloevagto:getline 03/24 19:01
fengchu:www.cplusplus.com/reference/clibrary/cstdio/fgets/ 03/24 19:23
legnaleurc:純 C 用 fgets 03/24 19:37
tropical72:scanf("%^\n\n",input); ?? 03/24 20:00
這樣輸出只有 " 這個符號 更奇怪了@@
TaiwanXDman:fgets好用! 03/24 20:55
※ 編輯: APE36 來自: 140.118.229.184 (03/24 21:14)
loveme00835:好用但是不安全阿... 03/24 21:17
APE36:fgets(input,49,stdin); 還是一樣 沒作用呀qq 03/24 21:25
firejox:fgets 安全阿....gets才不安全... 03/24 21:30
fgets:很安全好嗎,不會超出index 03/24 21:31
yauhh:scanf函數名字告訴你是用格式的方式讀資料,但你想要的是跨 03/24 21:33
yauhh:格式讀資料,當然沒用. 你需要的是gets 03/24 21:34
firejox:scanf("%[^\n]\n",input); ... 03/24 21:44
也一樣 只出現 " 這個符號沒其他符號
loveme00835:竟然忘記這個參數 Orz... 03/24 21:50
firejox:我覺得是其他地方的問題@@... 猜測前面有用scanf... 03/24 21:56
是呀 前面有用scanf ※ 編輯: APE36 來自: 140.118.229.184 (03/24 21:59)
firejox:果然...在讀input前加上getchar();試試看 03/24 22:03
APE36:加上getchar(); scanf輸入後,像當了程式就沒值跑出來了更怪 03/24 22:09
firejox:可以給完整的code嗎?這樣有點難發現問題... 03/24 22:14
pepsicola:fgets不行嗎 為啥堅持用scanf 03/25 17:48
pepsicola:scanf("%[^\n]", input);應該是可以的吧 03/25 18:03
APE36:不行 試過了~"~ 03/25 21:23
keelar:10樓 ID 好屌 03/26 13:14