Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

Khi bạn chạy ứng dụng gọi hàm _sntscanf_s , cuộc gọi sẽ trả về một giá trị EOF(-1) . Tuy nhiên, khi bạn chạy ứng dụng trên Windows 10 Enterprise 2015 LTSB, ký tự rỗng tiêm được bỏ qua. Điều này khiến trường numFields để nhận một giá trị sai 1 thay vì giá trị EOF (-1) .

Ví dụ: sự cố này xảy ra trong ứng dụng Visual C++ sau đây:

#include "stdafx.h"
#include "string.h"
#include "stdlib.h"

int main()
{
    TCHAR szBuff[256];
    double temp = 0;
    wcscpy_s(szBuff, L"77777777");

    // this should force the _sntscanf_s to return an EOF (-1) value
    szBuff[0] = '\0';

    int numFields = _sntscanf_s(szBuff, _countof(szBuff), _T("%lf"), &temp);
    if (numFields == EOF)
    {
        printf("Correct Behavior!!!\r\n");
    }
    else
    {
        printf("BUG: _sntscanf_s failed to return EOF!!!\r\n");
    }
    return 0;
}

Nguyên nhân

Sự cố này xảy ra do sự cố các chức năng common_vsscanf trong tệp Ucrtbase.dll được bao gồm trong Windows 10 Enterprise 2015 LTSB. Vấn đề này ảnh hưởng đến dòng toàn bộ scanf chức năng:

  • _vsscanf_l

  • vsscanf

  • _sscanf_l

  • sscanf

  • _vsscanf_s_l

  • vsscanf_s

  • _sscanfs_l

  • sscanf_s

  • _snscanf_l

  • _snscanf_s

  • _snscanf_s_l

  • _snscanf_s

  • _vswscanf_l

  • vswscanf

  • _swscanf_l

  • swscanf

  • _vswscanf_s_l

  • vswscanf_s

  • _wsscanfs_l

  • swscanf_s

  • _snwscanf_l

  • _snwscanf_s

  • _snwscanf_s_l

  • _snwscanf_s

Giải pháp

Để giải quyết vấn đề này, cài đặt dịch vụ Cập Nhật 8 tháng 5 năm 2018-KB4103716 (OS xây dựng 10240.17861).

Tham khảo

Thời gian lớn C (CRT) Refactoring

Giới thiệu CRT phổ biến

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×