sscanf 與 sscanf_s的區別


  眾所周知,使用C語言讀取文本,比C++的文件流快的多,而C語言格式化讀取最常用、功能最強大的函數是:sscanf

  關於sscanf函數的用法,有一篇文章講解的很詳細、很透徹,大家可以查看鏈接:https://www.jb51.net/article/90495.htm

  本文主要講一下與sscanf_s的區別:

  在vs2010以上平台編寫代碼時,總是提示sscanf函數不安全,有的時候還會報錯,這時候就需要使用sscanf_s函數。

如果是進行格式化讀取字符串的話,就可能會報錯,我就遇到這個問題,耗費了大半天工夫才搞定。

  在格式化讀取字符串時,如果把sscanf修改為sscanf_s,需要在字符串之后指定字符串的空間大小,否則會出現未知錯誤。

  下面是一個sscanf_s格式化讀取字符串的一個示例:

 1     char name[64];
 2     char time[64];
 3     char status[64];
 4 
 5     double px, py, pz, rmsH, rmsV;
 6     int nSta;
 7 
 8     char line[512] = "sd1 15:17:07 116.5178566411 39.7644534169 21.884 0.016 0.037 13 固定解 2.20";
 9 
10     sscanf_s(line, "%s%s%lf%lf%lf%lf%lf%d",
11         name, 64, time, 64, &px, &py, &pz,
12         &rmsH, &rmsV, &nSta/*, status, &cp.pdop*/);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM