我正在尝试使用Visual Studio 2010 Pro从文本文件中读取。 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 );
答案 0 :(得分:3)
从手册页:
int scanf(const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
int sscanf(const char *str, const char *format, ...);
调用scanf的方式,要读取的目标字符串被解释为格式规范,而格式spececification用作变量参数之一。
答案 1 :(得分: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 );
选择一个。
答案 2 :(得分:0)
您没有正确使用它们。在cppreference.com上查看std::scanf
,std::fscanf
和std::sscanf
的{{3}}。
您可能想要使用:
std::sscanf(...)
答案 3 :(得分:0)