หากโปรเจ็กต์เป็นโปรเจ็กต์ GUI จะไม่มีคอนโซลปรากฏขึ้น ในการเปลี่ยนโปรเจ็กต์เป็นคอนโซลคุณต้องไปที่แผงคุณสมบัติโปรเจ็กต์และตั้งค่า:
- ใน " linker-> System-> SubSystem " ค่า " Console (/ SUBSYSTEM: CONSOLE) "
- ใน " C / C ++ -> Preprocessor-> Preprocessor Definitions " ให้เพิ่มการกำหนด " _CONSOLE "
โซลูชันนี้ใช้ได้เฉพาะเมื่อคุณมีจุดเข้า " int main () " แบบคลาสสิก
แต่ถ้าคุณเป็นเหมือนในกรณีของฉัน (โครงการ openGL) คุณไม่จำเป็นต้องแก้ไขคุณสมบัติเพราะจะได้ผลดีกว่า:
AllocConsole();
freopen("CONIN$", "r",stdin);
freopen("CONOUT$", "w",stdout);
freopen("CONOUT$", "w",stderr);
printf และ cout จะทำงานได้ตามปกติ
หากคุณเรียก AllocConsole ก่อนที่จะสร้างหน้าต่างคอนโซลจะปรากฏขึ้นหลังหน้าต่างหากคุณเรียกมันหลังจากนั้นจะปรากฏขึ้นข้างหน้า
อัปเดต
freopen
เลิกใช้งานแล้วและอาจไม่ปลอดภัย ใช้freopen_s
แทน:
FILE* fp;
AllocConsole();
freopen_s(&fp, "CONIN$", "r", stdin);
freopen_s(&fp, "CONOUT$", "w", stdout);
freopen_s(&fp, "CONOUT$", "w", stderr);