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

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 นั่งงมอยู่เกือบวัน ไม่ได้สักทีเลยไปอ่านหนังสือสอบก่อน

05 มกราคม 2554

Video เรื่อง Linked List




          ก่อนอื่นก็ขอ สวัสดีปีใหม่ ปี 2011 กันก่อนนะครับ ^^ ผมก็ไม่ได้ Update Blog ซะนานเลย เนื่องจากแอบหนีไปเที่ยวปีใหม่ และ นั่งทำงาน Video ของวิชา Datastructure เรื่อง Linked List ใช้เวลาตัดต่อหลายวันอยู่ จากความช่วยเหลือของเพื่อนๆ ในกลุ่ม และได้คำปรึกษาจาก อาจารย์ผู้สอน ทำให้ผลงานออกมาสวยงามมากมาย ^^ ขณะ Render โดยใช้ Notebook ของเพื่อนมีความร้อนถึง 103 องศา (มันจะร้อนไปไหน)

14 ธันวาคม 2553

การคำนวณในภาษา C++


          ไม่ได้ Update Blog มากนาน (อีกแล้ว) ในระหว่างที่รอเพื่อนทำงาน แอบ Update Blog หน่อยแล้วกัน สำหรับบทความในวันนี้ เราจะมาเรียนรู้การคำนวณในภาษา C++ กันดีกว่า โดยปกติแล้วการทำโปรแกรมขึ้นมาสักตัวนั้น จะต้องมีการคำนวณ บวก ลบ คูณ หาร หรือหาเศษจากการหาร

          แต่การคำนวณในภาษา C++ นั้น สามารถเขียนได้หลายรูปแบบ และการคำนวณบางครั้ง อาจไม่ตรงตามหลักการทางวิชา คณิตศาสตร์ด้วย เอาละมาเริ่มกันเลยดีกว่า


28 พฤศจิกายน 2553

ตัวแปรในภาษา C++ และการนำไปใช้งาน





     ไม่ได้ Update Blog กันนานเลย ช่วงนี้งานเยอะ (มั้ง) เลยไม่ค่อยจะมีเวลาเขียนเท่าไร :D เอาเป็นว่าวันนี้เรามารู้จักตัวแปรในภาษา C++ กันดีกว่า หลังจากที่เขียนบทความเรื่อง "ภาษา C++ เบื้องต้นและการแสดงข้อความ" ไปนานแล้ว (เกือบเดือนได้แล้วมั้ง ><') กว่าที่จะรื้อฟิ้นความหลังจากที่เรียนปีหนึ่งได้ กว่าจะหาข้อมูลที่อยากเขียนได้ กว่าจะหาแหล่งอ้างอิงข้อมูลได้ ก็เล่นซะเหนื่อยเลย เอาละบ่นมากพอละ :D เข้าเนื้อหากันดีกว่า



20 พฤศจิกายน 2553

Shell Script เบื้องต้น ฉบับสรุปไว้อ่าน ^^'




อาทิตย์นี้ อาจารย์สั่งงานให้เขียน Shell Script 10 Script แต่ก็ยังไม่รู้เลยว่า Shell Script เขียนยังไง มีคำสั่งยังไงไรบ้าง ไหนๆก็ไหนๆ ขอเขียนสรุปใน blog นี้แล้วกัน :D


12 พฤศจิกายน 2553

การ Compile ไฟล์ Object (*.o) และ Link เป็นไฟล์ executable ด้วย DevC++





         หลังจากได้เขียนบทความ การ Compile ไฟล์ Object (*.o) ในระบบ Unix ไปแล้วคราวนี้เรามาดูกันว่าจะ Compile ใน Window$ ต้องทำยังไงบ้าง ในบทความนี้จะใช้ตัวอย่างเป็นโปรแกรม DevC++ นะครับ






03 พฤศจิกายน 2553

การ Compile ไฟล์ Object (*.o) และรวมเป็นไฟล์ execute




          เราสามารถแยกโครงสร้าง class และ เนื้อของ class (method ต่างๆใน class) และ ไฟล์ที่มีการใช้งาน class (มีการสร้าง Object ด้านใน) ออกเป็น 3 ไฟล์ และทำการ Compile โดยที่ให้ โครงสร้าง class ที่เป็น header file ไฟล์ (.h) เป็นตัวเชื่อม โดยที่ ไฟล์เนื้อของ class และไฟล์ที่มีการใช้งาน class มีการ include header file



คำสั่งในการใช้งาน hg (Mercurial) และการสร้าง makefile



         hg หรือ Mercurial เป็นโปรแกรมไว้สำหรับจัดการ repository เพื่อใช้ในการพัฒนาโปรแกรม hg มีความสามารถมากมายเช่น การตรวจสอบดูว่ามีการแก้ไขอะไรบ้าง มีประวัติการแก้ไขอย่างไร ซึ่งมีประโยชน์มากสำหรับผู้ที่จะพัฒนาโปรแกรมที่มีผู้พัฒนาหลายๆ คน

         ก่อนที่เราจะใช้งาน hg เราต้องไปสร้างไฟล์ .hgrc ไว้ที่ home directory (login เข้าแล้วจะอยู่ใน home directory) ของเราก่อน เวลาแก้ไขโปรแกรมแล้ว commit จะมาถึงประวัติของเราจาก .hgrc



30 ตุลาคม 2553

ภาษา C++ เบื้องต้นและการแสดงข้อความ

   ภาษา C++ เป็นภาษาที่พัฒนามาจาก C ซึ่งเป็นภาษาที่ใช้ในการเขียนโปรแกรมเบื้องต้น ซึ่งเป็นพื้นฐานของภาษาอื่นๆ