Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. เปิดโปรแกรมภายนอกด้วย C++: คำสั่ง system() และทางเลือกที่ดีกว่า

    การเปิดโปรแกรม/แอปพลิเคชันภายนอกจาก C++ สามารถทำได้หลายวิธี ขึ้นอยู่กับ Platform และความต้องการ 1. วิธีง่ายที่สุด: std::system() (Portable แต่มีข้อจำกัด) #include <cstdlib> #include <iostream> int main() { std::cout << Opening Notepad... << std::endl; int result = s

  2. Catch Block และ Type Conversion ใน C++: กฎการจับ Exception

    ใน C++ Exception Handling, กฎการจับ Exception ด้วย catch Block มีความเข้มงวดกว่าการ Type Conversion ปกติ: ไม่มี Implicit Conversion ระหว่าง Thrown Object และ Catch Parameter (ยกเว้นบางกรณีเฉพาะ) กฎสำคัญ No Standard Conversions: throw a; catch(int) → ไม่จับได้ (Char ไป Int ไม่ได้) No User-D

  3. ฟังก์ชัน rint(), rintf(), rintl() ใน C++: ปัดเศษ Floating-Point ตาม Rounding Mode

    ฟังก์ชัน rint ฟамиลี (rint, rintf, rintl) ใน Header <cmath> ใช้สำหรับปัดเศษ Floating-Point ให้เป็นจำนวนเต็ม (คืนค่าเป็น Floating-Point Type เดียวกัน) ตาม Current Rounding Mode ที่ตั้งค่าผ่าน fesetround() (Header <cfenv>) ลายเซ็นฟังก์ชัน float rintf(float arg); // C++11 doubl

  4. สร้าง Falling Matrix Effect ด้วย C++: โค้ดและหลักการทำงาน

    เอฟเฟกต์ Falling Matrix (โค้ดสีเขียวตกหล่น) ที่เห็นในภาพยนตร์ The Matrix สามารถสร้างได้ด้วย C++ แบบ Console Application โดยใช้เทคนิคพื้นฐาน: Random Characters, Boolean Array สำหรับควบคุมการแสดง, และ Delay เพื่อสร้าง Animation หลักการทำงาน กำหนดความกว้าง (Width) ของหน้าจอ Console Boolean Ar

  5. Regex Error ใน C++: รหัสข้อผิดพลาดและการจัดการ Exception

    ไลบรารี <regex> ใน C++ สามารถโยน Exception ชนิด std::regex_error เมื่อพบรูปแบบ Regular Expression ที่ไม่ถูกต้อง การเข้าใจรหัสข้อผิดพลาด (Error Codes) ช่วยให้ Debug ได้รวดเร็วขึ้น ตารางรหัสข้อผิดพลาดหลัก (std::regex_constants::error_type) Error Codeความหมาย error_collateชื่อ Collation ไม่ถ

  6. Buffer Flush ใน C++: ทำไมต้องใช้ และใช้อย่างไร

    Buffer Flush คือการบังคับให้ข้อมูลใน Buffer (หน่วยความจำชั่วคราว) ถูกเขียนออกสู่ Destination (Console, File, Network) ทันที โดยไม่รอให้ Buffer เต็มหรือโปรแกรมจบการทำงาน ทำไมต้อง Flush? C++ ใช้ Buffered I/O เพื่อประสิทธิภาพ การเขียนข้อมูลทีละไบต์ช้า มากกว่าการสะสมใน Buffer แล้วส่งทีเดียว แต่ในบางกรณ

  7. NaN ใน C++ คืออะไร? การจัดการค่าที่ไม่ใช่ตัวเลข

    NaN (Not a Number) เป็นค่าเฉพาะในระบบ Floating-Point (IEEE 754) ที่แทนผลลัพธ์ของการดำเนินการทางคณิตศาสตร์ที่ ไม่ได้ถูกกำหนด หรือ ไม่สามารถแสดงเป็นตัวเลขได้ ใน C++ NaN เป็นส่วนหนึ่งของ float, double, และ long double สถานการณ์ที่เกิด NaN รากที่สองของจำนวนลบ: sqrt(-5) การหารศูนย์ด้วยศูนย์: 0.

  8. ฟังก์ชัน transform() ใน C++ STL: คู่มือฉบับสมบูรณ์

    ฟังก์ชัน std::transform เป็นอัลกอริทึมพื้นฐานใน C++ Standard Template Library (STL) ที่อยู่ใน Header <algorithm> ใช้สำหรับนำฟังก์ชันหรือ Operation ไปประยุกต์กับทุก Element ใน Range (Container/Array) และเก็บผลลัพธ์ไว้ใน Destination Range สองโหมดการทำงาน Unary Operation (ดำเนินการหนึ่งอินพ

  9. Object Slicing ใน C++: สาเหตุและวิธีป้องกัน

    Object Slicing (การตัดส่วนของออบเจกต์) เป็นปัญหาคลาสสิกใน C++ ที่เกิดขึ้นเมื่อมอบออบเจกต์ของคลาสลูก (Derived Class) ให้กับตัวแปรของคลาสแม่ (Base Class) แบบ Call by Value ทำให้สมาชิกข้อมูลและเมธอดที่เฉพาะเจาะจงของคลาสลูกถูก ตัดทิ้ง ไป เหลือเฉพาะส่วนของ Base Class เท่านั้น ตัวอย่างปัญหา class Foo {

  10. C++ ขั้นสูงกับไลบรารี Boost: การคำนวณตัวเลขขนาดใหญ่และความแม่นยำสูง

    ไลบรารี Boost ของ C++ เป็นเครื่องมือที่ทรงพลังและหลากหลายการประยุกต์ใช้ โดยเฉพาะอย่างยิ่งในการจัดการตัวเลขขนาดใหญ่และการคำนวณที่ต้องการความแม่นยำสูง ซึ่งเกินขีดจำกัดของชนิดข้อมูลพื้นฐาน เช่น long long หรือ double บทความนี้จะแนะนำการใช้งานโมดูล Boost.Multiprecision สำหรับการทำงานกับจำนวนเต็มขนาดใหญ่

  11. การป้องกันการคัดลอกออบเจ็กต์ใน C++

    การป้องกันการคัดลอกออบเจ็กต์ใน C++ ใน C++ เมื่อสร้างคลาสขึ้น เราสามารถคัดลอกได้โดยใช้คอนสตรัคเตอร์คัดลอก (copy constructor) หรือออเปอเรเตอร์กำหนดค่า (assignment operator) ในส่วนนี้เราจะดูวิธีป้องกันการคัดลอกออบเจ็กต์ของคลาสใน C++ โดยทำตามกฎดังต่อไปนี้ 1. สร้างคอนสตรัคเตอร์คัดลอกและออเปอเรเตอร์กำหนด

  12. ฟังก์ชัน strtol() ใน C++: แปลง String เป็น Long Integer

    strtol() ใน <cstdlib> แปลง String เป็น long int รองรับ Base 2-36 Syntax long int strtol(const char* str, char** endptr, int base); Parameters str: สตริง Input endptr: Pointer ที่จะถูกตั้งให้ชี้ตัวอักษรถัดจากตัวสุดท้ายที่แปลงได้ (อาจเป็น NULL) base: ฐานเลข (0, 2-36). Base 0 = Auto-detect (0x

  13. ฟังก์ชัน remainder() ใน C++: หาเศษจุดทศนิยม

    remainder(x, y) ใน <cmath> คำนวณเศษของ x/y แบบ Floating Point นิยาม remainder(x, y) = x - n × y โดย n = ค่าจำนวนเต็มที่ใกล้ x/y ที่สุด (Round to nearest, ties to even) ต่างจาก fmod() fmod: n = trunc(x/y) (ปัดทิ้งทศนิยม) → เปลี่ยนเครื่องหมายตาม x remainder: n = round(x/y) (ปัดไปค่าที่ใกล้ที่

  14. sqrt, sqrtl, sqrtf ใน C++: ความแตกต่างและการใช้งาน

    ใน <cmath> มีฟังก์ชัน Square Root 3 รูปแบบ สำหรับชนิดข้อมูลต่างกัน 1. sqrt() - Double Precision double sqrt(double x); มาตรฐาน ใช้กับ double ความแม่นยำ ~15-17 หลัก ตัวอย่าง #include <cmath> #include <iomanip> #include <iostream> using namespace std; int main() { double

  15. ทำไม "using namespace std" ถือเป็น Bad Practice ใน C++

    C++ มี Standard Library ที่มีฟังก์ชันทั่วไปที่คุณใช้ในการสร้างแอปพลิเคชัน เช่น Containers, Algorithms ฯลฎ ถ้าชื่อที่ใช้โดยพวกมันอยู่ใน Global Scope (ขอบเขตทั่วไป) เช่น ถ้าพวกมันกำหนด Queue Class แบบ Global คุณจะไม่มีทางใช้ชื่อเดียวกันอีกโดยไม่มี Conflict (ความขัดแย้ง) ดังนั้นพวกเขาจึงสร้าง Namespac

  16. หาค่ากลางของ 3 ตัวเลขด้วยการเปรียบเทียบน้อยที่สุดใน C++

    ในส่วนนี้ เราจะดูวิธีหาค่ากลาง (Middle) ของ 3 ค่าที่กำหนดโดยการเปรียบเทียบพวกมัน ดังนั้นถ้ามีตัวเลข 3 ตัว เช่น (10, 30, 20) จะหาได้ 20 เพราะเป็นองค์ประกอบกลาง มาดูอัลกอริทึมก่อน แล้วค่อยนำไปเขียนโค้ด C++ อัลกอริทึม middle_of_three(a, b, c): Input: สามตัวเลข a, b และ c Output: ค่ากลางของสามตัวนี้ Be

  17. นับจำนวน Object ด้วย Static Member Function ใน C++

    ที่นี่เราจะดูวิธีนับจำนวน Object ที่ถูกสร้างจากคลาสเฉพาะ โดยใช้ Static Member Functions Static Members เป็นคุณสมบัติของคลาส (Class Properties) ไม่ใช่ของออบเจ็กต์ สำหรับคลาสเดียว จะมี Instance ของ Static Member เพียงหนึ่งเดียว ไม่มี Member ใหม่สร้างขึ้นสำหรับแต่ละ Object ในปัญหานี้ เราใช้ตัวแปร Stat

  18. static_cast ใน C++

    static_cast ใช้สำหรับการแปลงชนิดข้อมูลทั่วไป (Normal/Ordinary Type Conversion) นี่คือ Cast ที่รับผิดชอบ Implicit Type Coercion และสามารถเรียกใช้แบบ Explicit ได้ ควรใช้ในกรณีเช่น แปลง float เป็น int, char เป็น int ฯลฯ สามารถ Cast ระหว่างคลาสที่เกี่ยวข้องได้ ตัวอย่าง #include <iostream> using n

  19. ชนิดข้อมูล Any (Any Datatype) ใน C++ Boost Library

    Boost Library มีฟังก์ชันการทำงานที่กว้างขวาง ชนิดข้อมูล Any (any datatype) เป็นหนึ่งในนั้น Any Datatype ใช้เก็บค่าประเภทใดก็ได้ในตัวแปร ภาษาอื่นๆ เช่น JavaScript, Python มีชนิดข้อมูลแบบนี้ ใน C++ เราสามารถได้ฟีเจอร์นี้ได้เฉพาะผ่าน Boost Library เท่านั้น ตัวอย่าง #include "boost/any.hpp" #

  20. feclearexcept ใน C++

    ฟังก์ชัน feclearexcept() ใช้เพื่อล้าง (Clear) Floating-point Exceptions ที่รองรับ ซึ่งแสดงโดย excepts ฟังก์ชันนี้คืนค่า 0 ถ้าล้าง Exceptions ทั้งหมดสำเร็จ หรือค่า Exception เป็น 0 และคืนค่า Non-zero สำหรับบาง Exceptions เพื่อใช้ฟังก์ชันนี้ เราต้องเปิดใช้งาน FENV_ACCESS จะให้โปรแกรมของเราเข้าถึง Flo

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:55/301  20-คอมพิวเตอร์/Page Goto:1 49 50 51 52 53 54 55 56 57 58 59 60 61