2014-05-09 3 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를 stdin에서 읽을 수는 : FILE에서
  • 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

올바르게 사용하고 있지 않습니다. cppreference.com에서 std::scanf, std::fscanfstd::sscanfthe documentation을 확인하십시오.

std::sscanf(...) 
0

표준 : scanf와는 표준 입력의 내용을 읽는 데 사용됩니다 :

enter image description here

당신은 아마 사용하고 싶습니다.

std :: sscanf는 문자열에서 읽는 데 사용됩니다.

관련 문제