如果您有文件格式:
<int><space><int><space><char><space><char*><space><float><newline>
<int><space><int><space><char><space><char*><space><float><newline>
<int><space><int><space><char><space><char*><space><float><newline>
所以例如文件可以是:
12 2212 A test1ok 12.0
11 2442 B something 32.555
17 223 D sometime1test 12.0
现在,给定一些文件,您如何检查它确实符合该格式?
如果不使用除Boost之外的外部库,您将如何做到这一点?
答案 0 :(得分:1)
如果您不想要提升,可以使用c ++ 11标准库中的<regex>
。您可以查看here以获取regex
的详细信息。
答案 1 :(得分:1)
如果char*
部分不包含空格,您可以尝试使用sscanf
并查看它是否匹配。类似的东西:
#include <stdio.h>
int main()
{
unsigned dummy1, dummy2;
char dummy3;
char dummy4[256];
float dummy5;
const char *str = "12 2212 A test1ok 12.0\n";
if ( sscanf( str, "%u %u %c %s %f\n", &dummy1, &dummy2, &dummy3, dummy4, &dummy5 ) > 0 ) {
// Matches
} else {
// Doesn't match
}
}
答案 2 :(得分:0)