Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Συμπτώματα

Όταν εκτελείτε μια εφαρμογή που καλεί τη συνάρτηση _sntscanf_s , η κλήση θα πρέπει να επιστρέψει μια τιμή EOF(-1) . Ωστόσο, όταν εκτελείτε την εφαρμογή σε Windows 10 εταιρικού 2015 LTSB, αγνοείται το μηδενικό χαρακτήρα που έχει εισαχθεί. Αυτό έχει ως αποτέλεσμα το πεδίο numFields για να λάβετε μια εσφαλμένη τιμή 1 αντί για την τιμή EOF (-1) .

Για παράδειγμα, αυτό το ζήτημα παρουσιάζεται στην παρακάτω εφαρμογή Visual C++:

#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;
}

Αιτία

Αυτό το ζήτημα παρουσιάζεται εξαιτίας ενός γνωστού προβλήματος στη συνάρτηση common_vsscanf στο αρχείο Ucrtbase.dll που περιλαμβάνεται στο Windows 10 εταιρικού 2015 LTSB. Αυτό το ζήτημα επηρεάζει το σύνολο scanf οικογένεια των συναρτήσεων:

  • _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

Προτεινόμενη αντιμετώπιση

Για να επιλύσετε αυτό το ζήτημα, εγκαταστήστε τη συντήρηση ενημέρωση 8 Μαΐου 2018 — KB4103716 (OS Build 10240.17861).

Αναφορές

Ο χρόνος εκτέλεσης μεγάλη C (CRT) επανασχεδιασμός προγράμματος

Σχετικά με τη θέσπιση του ενιαίου CRT

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×