首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在空白后不扫描行

在空白后不扫描行
EN

Stack Overflow用户
提问于 2012-09-23 06:46:18
回答 2查看 295关注 0票数 0

我对fscanf函数有个问题。

原谅我英语不好。

程序按以下方式读取该文件:

代码语言:javascript
复制
status = fscanf(ifile, "%%!%11s", ifbuf);

如果文件直接以所需的条目开头,例如

代码语言:javascript
复制
%! UTF-8
some text

fscanf读取ifbuf中的一行。如果行中以空格开头

代码语言:javascript
复制
    %! UTF-8
some text

fscanf什么也不读。

在这两种情况下,都可以通过在格式字符串中添加空格来实现fscanf函数的工作:

代码语言:javascript
复制
status = fscanf(ifile, " %%!%11s", ifbuf);

我想知道fscanf函数的行为是否正确。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-23 08:35:55

你所说的被观察到的行为是正确的行为。scanf()函数只跳过一些转换规范(实际上是%c%[以外的大部分)的前导空格。对于格式字符串的文字组件,除了格式字符串中的空格与数据中任意数量的空白字符相匹配外,它的行为或多或少都是字面上的。

票数 0
EN

Stack Overflow用户

发布于 2012-09-23 08:22:47

您在格式字符串中使用s,该字符串与非空白字符的字节序列相匹配。该函数读取字节,根据格式解释它们,并将结果存储在其参数中。

在您的例子中,它会找到一个以空格开头的行,这与您要寻找的格式不匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12550309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档