2014年9月18日 星期四

VS2013 scan與 scan_f的方法[C code]。

VS2013 在使用 scanf 在編譯的時候會出現 "_CRT_SECURE_NO_WARNINGS" 這個錯誤。

有兩種解決方法:

1. 對該方案點選右鍵 -> 屬性 -> 組態屬性 -> C/C++ -> 前置處理器 的前置處理器定義

    進行編輯, 將_CRT_SECURE_NO_WARNINGS加入。就可以正常使用scanf了。

2. 方式就是改用 scanf_s

    下面有scanf 與 scanf_s兩種寫法的參考

    const int SIZE 1024;
    char *str = new char [SIZE];

    1. scanf
        scanf("%s",  str );
        printf("%s\n", str);
        即可

    2. scanf_s多了第三個參數,是放置該陣列大小,以免溢出,較scanf安全
     
        errno_t err;
        if ((err = scanf_s("%s", str  , SIZE)) == true)
            printf("%s\n", str);

就這樣。
其中,fopen也會有這樣的狀況,所以也是同樣方式,去解決。


沒有留言:

張貼留言