แสดงบทความที่มีป้ายกำกับ C++ แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ C++ แสดงบทความทั้งหมด

24 มีนาคม 2554

วิธีแก้ไขเมื่อ scanf ไม่ยอมรับค่า ในภาษา C




          ช่วงนี้ผมก็ทำงาน Project ส่งงานวิชา Unix เสร็จเป็นที่เรียบร้อย แล้วก็ได้ไปช่วยเพื่อนๆ หลายๆ คน และได้ไปพบอยู่คนหนึ่ง มีปัญหาที่ว่า scanf ไม่ยอมรับค่าสักที ทำให้ผมต้องมานั่งไล่ Code เกือบทั้งหมด และก็ค้นพบว่ามันเป็นปัญหาของ stream ของ Keyboard Buffer ไม่ยอมเคลียร์ค่า \n

การที่ scanf ไม่ยอมรับค่า เกิดจากอะไร ?? (๊Update 14-14-2011)
      เกิดจากการอ่านค่าของ scanf ในรูปแบบฟอแมทของพวกตัวเลข จะอ่านเฉพาะตัว string ที่เกี่ยวกับตัวเลขเท่านั้น (0 1 2 3 4 5 6 7 8 9 . + - ) อาจจะมีตัวอื่นอีกนะครับ แต่ในส่วนของตัว '\n' นั้นถือว่าไม่ใช่ string เกี่ยวกับตัวเลข จึง scanf ในฟอแมทของพวกตัวเลข จึงไม่รับ '\n' และค้างอยู่ใน KeyBoard Buffer ทำให้ถูกส่งไปยัง scanf ตัวต่อไป


22 กุมภาพันธ์ 2554

ตัวอย่าง การตัดตัวอักษร (substring) ในภาษา C (ไม่ใช่ C++ นะจ๊ะ)

ไม่ได้ Update Blog นานเลย ขอ ดราม่านิดนึง ^^'

หลังจากเรียนวิชา Unix Tools and Programming ไปเรียบร้อยและได้โดนสั่งงาน Project เทอมให้ทำโปรแกรม Client Server โดยมีเงื่อนไขว่า ให้ใช้ภาษา C และผมเลยติดปัญหาที่ว่า ผมต้องการติดคำในภาษา C เช่นมี ABCDEF จะเอาแค่ CDE เก็บใส่ในตัวแปรใหม่ เริ่มแรกก็ได้ลองหาว่ามี libary มีให้ใช้ไหม

เลยหาข้อมูลมาดังนี้
1. ลองหา google เห็นว่าไม่มีข้อมูล เสียเวลาประมาณ 1 วัน (หรือผมหาไม่เจอ = =)
2. ถามพี่ๆที่คณะ ก็ไม่รู้ เสียเวลาไปอีก 1 วัน
3. เลยถามพี่ๆ ใน facebook ที่จบไปแล้วว่ามันมีหรือไม่ เสียเวลาไปอีก 1 วัน

โดยได้คำตอบว่ามันไม่มีให้ใช้ และได้คำแนะนำว่าให้ลองเขียนเอง (ช่วงสอบด้วย โอ้ว แม่เจ้า !!!)
ช่วงแรกๆผมลองดูก็ Segmentation fault นั่งงมอยู่เกือบวัน ไม่ได้สักทีเลยไปอ่านหนังสือสอบก่อน