我已经有了一些代码来读取文本文件fscanf(),现在我需要对它进行修改,以便之前没有空格的字段需要允许空格.文本文件基本上是以下形式:
标题:数据
标题:数据
等......
这是基本使用解析fgets(inputLine, 512, inputFile); sscanf(inputLine, "%*s %s", &data);,读的数据字段,忽略了冠军,但现在的一些数据字段需要允许的空间.我仍然需要在它之后立即忽略标题和空格,然后读取包括空格在内的其余行.
无论如何使用该sscanf()功能吗?
如果没有,我可以对代码进行最小的更改以正确处理空白?
更新:我编辑了用fgets()+ sscanf()替换fscanf()的问题,这是我的代码实际使用的.当我第一次写这个问题时,我并不认为它是相关的,这就是我将它简化为fscanf()的原因.
pmg*_*pmg 13
如果你不能使用fgets()使用%[转换符(带有"排除选项"):
char buf[100];
fscanf(stdin, "%*s %99[^\n]", buf);
printf("value read: [%s]\n", buf);
Run Code Online (Sandbox Code Playgroud)
但是fgets()更好.
编辑:带fgets()+的版本sscanf()
char buf[100], title[100];
fgets(buf, sizeof buf, stdin); /* expect string like "title: TITLE WITH SPACES" */
sscanf(buf, "%*s %99[^\n]", title);
Run Code Online (Sandbox Code Playgroud)