documentation on scanf表示任何"非空白字符"在格式中,使函数从流中读取下一个字符,将其与此非空白字符进行比较,如果匹配,则将其丢弃,并继续使用下一个格式的字符。 如果字符不匹配,则函数失败,返回并保留流的后续字符未读。
但是,如果我跑:
int x;
while(scanf("\n%d",&x)==1) printf("%d\n",x);
使用以下输入:
1 2
打印:
1
2
鉴于没有' \ n'在这两个数字中的任何一个之前,为什么scanf会读取它们?这不是针对文档的吗?
答案 0 :(得分:5)
在链接到您引用的段落的同一页面上,我看到:
- 空白字符:该函数将读取并忽略在下一个非空白字符之前遇到的任何空白字符(空白字符包括空格,换行符和制表符 - 请参阅isspace)。 格式字符串中的单个空格可验证从流中提取的任何数量的空白字符(包括无)。
\n
是一个空格字符。
因此,通话
scanf("\n%d",&x)
在将数据读入stdio
之前,将从&x
中提取并丢弃任意数量的空白字符。
答案 1 :(得分:2)
static func searchCode(codeNumber: String) -> [Data]
{
let barcodeNumber = codeNumber
let remoteURL = NSURL(string: downloadconstants.URLConstants.productfile )
//let characterNumber = codeNumber.characters.count
var dataArray = [Data]()
}
是一个空格字符。见isspace()