30/09/2018, 20:42

Hàm printf() xuất chuỗi không chính xác

Làm thế nào để khắc phục lỗi printf() chỉ xuất ra những ký tự trước ký tự khoảng trắng đầu tiên?

char strTen[30];

fflush(stdin);
printf("Nhap vao ten: ");
scanf_s("%s", &strTen, 30);     //Chang han minh nhap vao "Nguyen Duc Anh"

printf("%s", strTen);    //Khi xuat ra man hinh "Nguyen"
viết 22:48 ngày 30/09/2018

Bạn dùng strtok trong string.h

printf("%s", strTen);

sửa lại thành printf("%s",strtok(strTen," "));

Pham Van Hai viết 22:47 ngày 30/09/2018

Nếu mình nhớ ko nhầm thì lỗi này do bạn dùng scanf_s nhưng ko hiểu rõ nó, ko liên quan gì đến hàm printf cả. Hàm này nhập chuỗi mà khi gặp dấu cách hoặc dấu enter thì sẽ ngừng nhập, như trong trường hợp của bạn nó chỉ nhận chữ nguyen là đúng.
Bạn hãy dùng hàm fgets để nhập chuỗi, cách dùng bạn tìm trên google.

Nguyễn Đức Anh viết 22:52 ngày 30/09/2018

Mình dùng cin.getline(strHoTen, sizeof(strHoten)); Chương trình chạy tốt rồi. Cảm ơn mấy bạn nha.

anon51853234 viết 22:47 ngày 30/09/2018

vầy cho lẹ

#include <stdio.h>
int main(){
    char strTen[30];
    printf("Nhap vao ten: ");
    scanf("%[^\n]",strTen);
    printf("%s",strTen);
}
Jobs Apple Steve viết 22:56 ngày 30/09/2018

cho nay nen dung gét chu nhi sao lai dng scanf nhi

Bài liên quan
0