[問題] 如何從字串取得ASCII字元?

看板C_and_CPP (C/C++)作者 (Algorist)時間14年前 (2011/07/25 18:29), 編輯推噓1(1023)
留言24則, 6人參與, 最新討論串1/1
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char buf[4]; fprintf(stderr,"Input: "); fgets(buf, 4, stdin); for(int i=0;i<4;i++) printf("%c",buf[i]); system("pause"); return 0; } ex: input: AAAA => AAAA 是否有辦法輸入ascii碼字串去取得想要的ascii字元? 因為有些符號無法直接從鍵盤上取得 ex:(錯誤的方法) input:\x41\x41\x41\x41 => AAAA 像字元若是一個一個放就有辦法透過跳脫字元取得A buf[0]='\x41' => A buf[1]='\x41' => A p.s. 程式碼不能改 只能從輸入端做改變 input: ?????? 會產生 相對應ascii的結果 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.164.3

07/25 18:30, , 1F
你應該要一個一個讀...
07/25 18:30, 1F

07/25 18:33, , 2F
scanf("\\%hhx",buf[0]);
07/25 18:33, 2F

07/25 18:38, , 3F
ctrl+@ -> NULL ; ctrl+A -> 0x01 ; ctrl+B -> 0x02
07/25 18:38, 3F

07/25 18:40, , 4F
剛找到一份文件應ok http://ppt.cc/aLnL
07/25 18:40, 4F

07/25 18:54, , 5F
程式碼不能改,真趣味的要求
07/25 18:54, 5F

07/25 18:57, , 6F
我剛的確是有疑問,ascii(0x03)這沒辦法輸入到 buf.
07/25 18:57, 6F

07/25 18:58, , 7F
當一按下 ctrl+c / ctrl + d 程式就結束了.
07/25 18:58, 7F

07/25 18:58, , 8F
那應該需要pipe XD
07/25 18:58, 8F

07/25 18:59, , 9F
ctrl+c 就直接中斷了XD
07/25 18:59, 9F

07/25 18:59, , 10F
難不成需要signal XD
07/25 18:59, 10F

07/25 19:00, , 11F
或者試試看壓著alt輸入數字這樣? alt+65=>'A'
07/25 19:00, 11F

07/25 19:00, , 12F
我其實是蠻好奇,但不知道算不算鑽牛角.
07/25 19:00, 12F

07/25 19:01, , 13F
!! kaomark 可行!多學了一個,感謝 *^_^*
07/25 19:01, 13F

07/25 19:04, , 14F
試kaomark的失敗了 orz
07/25 19:04, 14F

07/25 19:05, , 15F
!! f 大環境是 ??
07/25 19:05, 15F

07/25 19:06, , 16F
linux terminal的...
07/25 19:06, 16F

07/25 19:08, , 17F
soga, 看來會認環境.
07/25 19:08, 17F
會有程式碼不能改的要求 是因為我在打Wargame http://wargame.cs.nctu.edu.tw/wargame/problem/1 原po很嫩 目前卡在第四題 需透過buffer overflow 去改變記憶體位置 有興趣的人可以玩看看囉 如果不能po此資訊 請告知 謝謝 ※ 編輯: Algorist 來自: 114.37.164.3 (07/25 19:18)

07/25 19:20, , 18F
我想知道怎麼用 ov 改 memory value.
07/25 19:20, 18F

07/25 19:44, , 19F
perl -e 'print "\x55\x66\xcc\xdd"' | ./foobar 就可以
07/25 19:44, 19F

07/25 19:45, , 20F
一般也可以直接在命令列下用 printf "\xcc\xdd" 辦到
07/25 19:45, 20F

07/25 19:46, , 21F
但 wargame.cs 那台機器的 printf 好像不能這樣用
07/25 19:46, 21F

07/25 19:57, , 22F
感謝D大 原來是這麼一回事 害我搞了一整天
07/25 19:57, 22F

07/25 20:32, , 23F
跑去玩了半天XD 這題用ctrl+@的方法輸入就可以過
07/25 20:32, 23F

07/25 20:38, , 24F
那是否可以用echo XD
07/25 20:38, 24F
文章代碼(AID): #1EBKLsF5 (C_and_CPP)
文章代碼(AID): #1EBKLsF5 (C_and_CPP)