Lỗi chạy C trong vscode

E ngồi mò cách fix mà ko đc, phần debug console nó hiện thế này. Lúc F5 debug chương trình C thì nó ko chạy, bác nào xem giúp e với. Em cảm ơn.

Breakpoint 1, main (argc=4, argv=0xbd14d0) at c:\Users\tamtu\Desktop\C\123.c:4

4 printf("sasdad");

Loaded 'C:\WINDOWS\SYSTEM32\ntdll.dll'. Symbols loaded.

Loaded 'C:\WINDOWS\System32\kernel32.dll'. Symbols loaded.

Loaded 'C:\WINDOWS\System32\KernelBase.dll'. Symbols loaded.

Loaded 'C:\WINDOWS\System32\msvcrt.dll'. Symbols loaded.

sasdad~"[Thread 716.0x3c40 exited with code 0]\n"

[Inferior 1 (process 716) exited normally]

The program 'c:\Users\tamtu\Desktop\C\123.exe' has exited with code 0 (0x00000000).

Bạn phải dừng lại cho người dùng Enter vào getchar();.

4 Likes

e chưa hiểu ý bác , bác nói rõ hơn đc ko , e cảm ơn

Đơn giản thôi, chẳng có cái lỗi gì ở đây cả, chương trình đã làm đúng mệnh lệnh bạn đưa cho: In dòng chữ sasdad rồi trả về giá trị 0 ở hàm main. Nhưng, chương trình chạy nhanh quá nên bạn không thấy, nên bạn cứ tưởng bị lỗi. Cách khắc phục rất đơn giản, sau khi in sasdad thì cho chương trình dừng lại, chờ user nhập enter hay kí tự gì đó bằng hàm getchar() như @rogp10 đã nói, nhập xong thì chương trình chạy lệnh return 0; - thoát chương trình.

2 Likes

e cảm ơn bác mà đích thị đây là lỗi bác à , e thử r vẫn ko đc , thử nhập số hay chữ nó báo lỗi , máy e mới cài lại win nên bị , lúc trước sài vẫn ngon :frowning:

Hàm getchar() chỉ nhận một kí tự thôi, muốn nhận nhiều hơn thì dùng scanf()

3 Likes

bác có teamview ko bác , bác xem giúp e với , e nhập 1 số hay 1 kí tự bất kì cũng ko đc

Hmm… Vậy bạn có bật Unikey không :thinking: ? Hay là compile code rồi chụp hết toàn bộ màn hình rồi đăng lên đây xem. Máy tính mình bị hư, đang sài tạm điện thoại.

1 Like

đợt sài bản win cũ thì dùng unikey ko vấn đề gì , từ khi nên bản mới mới bị thế mình , mình nghĩ là do cài đặt có vấn đề , ko nghĩ là do code

Từ bản nào lên bản nào vậy :thinking: ?

1 Like

máy có chút lỗi , mình reset lại win 10 thôi b à

À mà bạn bảo nó báo lỗi, thế lỗi đó chi tiết là như thế nào vậy, thấy có dòng chữ màu đỏ.

1 Like

ví thử bấm F5 để print ra , bình thường sẽ hiện ra dòng chữ như hình trên là sasdad , nhưng lỗi là bấm f5 rồi ko hiện gì cả

Em cũng không biết là lỗi gì đâu nhưng anh thử cài lại complie xem được không, nhớ chọn đúng phiên bản 32bit. Mấy lần em dính lỗi ko biết lỗi gì cũng cài lại complie lại dùng ok.
Em thấy anh dùng lại cái complie của DEV C++ đúng không ạ(tại em thấy có link dẫn đến file complie của DEV C++). Em nghĩ anh nên cài lại vì cái DEV C++ đôi lúc bị ngáo không rõ lí do.

Không phải phím nào khi nhấn vào cũng cho ra kí tự, F5 chẳng hạn. Chương trình khi chạy không bị lỗi, vẫn là do nhanh quá không nhìn thấy được. Dùng 2 lần getchar() hoặc while(getchar() != '\n'); rồi sau đó dùng getchar() để dừng chương trình. Lí do vì sau khi nhập dữ liệu, kí tự xuống dòng \n bị lưu vào trong bộ đệm của stdio, getchar() liền ngay lập tức lấy dữ liệu trong bộ đệm stdio với tốc độ bàn thờ rồi chương trình chạy lệnh return 0;

#include <stdio.h>
int main () {
    char c;
    printf("Nhap ky tu: "); 
    c = getchar();
    printf("Ky tu vua nhap: "); 
    putchar(c);
    printf("\n"); 
    //Cách ngắn gọn hơn: printf("Ky tu vua nhap: %c \n", c); 
    getchar(); //Xóa dữ liệu trong bộ đệm stdio hoặc có thể dùng `while(getchar() != '\n');`
    getchar(); //Dừng chương trình
    return(0); 
}

2 Likes

Cái này là do chưa dừng chương trình thôi, dừng phát chạy OK ngay.

1 Like

đúng r b à , mk dùng compile dev c , để mình thử đổi sang cái khác xem sao

compile bằng lệnh trên vscode thì oke , trên dev c cũng oke , chỉ bị lỗi F5 là debug thôi bác ạ

Có hẳn hoi hướng dẫn bằng tiếng Việt luôn:

Hướng dẫn tiếng Anh:

2 Likes

vẫn ko đc bác à :((((

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?