2014-05-09 39 views
-7

我想從使用Visual Studio 2010 Pro的文本文件讀取。 sscanf效果不錯,但std::scanf沒有。sscanf很好,但std :: scanf不工作

我不知道爲什麼會發生這種情況;請幫幫我。

float b, g, r; 
int px = 0; 
int py = 0; 
std::string strLine; // some string is. 

//below code works very well. 
int nRead = sscanf(strLine.c_str(), "%f %f %f %d %d", &b, &g, &r, &px, &py); 

//but this does not. 
int nRead = std::scanf(strLine.c_str(), "%f %f %f %d %d", &b, &g, &r, &px, &py); 
+1

'std :: sscanf'怎麼樣? – Adam

+0

哦〜我很笨。感謝大家。 – user1923661

回答

3

從手冊頁:

int scanf(const char *format, ...); 
    int fscanf(FILE *stream, const char *format, ...); 
    int sscanf(const char *str, const char *format, ...); 
  • scanf函數:從標準
  • 的fscanf讀:從文件中讀取
  • 的sscanf:從字符串讀取。

您調用scanf的方式,從中讀取的預期字符串被解釋爲格式規範,而格式spececification被用作可變參數之一。

0

兩個選擇:

int nRead = std::sscanf(strLine.c_str(), "%f %f %f %d %d", &b, &g, &r, &px, &py); 

int nRead = std::scanf("%f %f %f %d %d", &b, &g, &r, &px, &py); 

挑一個。

0

您沒有正確使用它們。檢查the documentationstd::scanf,std::fscanfstd::sscanf上cppreference.com。

enter image description here

你可能想使用:

std::sscanf(...) 
0

的std :: scanf函數是用來讀取從標準輸入的內容。

std :: sscanf用於從字符串讀取。

Click the link