【发布时间】:2011-12-31 01:56:17
【问题描述】:
即使在阅读了如何使用 sscanf 执行此操作的文档之后,我也不太确定。
这是我想做的: 给定一串文本:
最多读取前 64 个字符或直到达到空间 然后会有一个空格,一个=,然后是另一个空格。 之后,我想提取另一个字符串,直到字符串结束或达到 8192 个字符。我还希望它将“\n”的第二个字符串中的任何出现更改为实际的换行符。
我有:“%64s = %8192s”,但我认为这是不正确的。
谢谢
例如:
element.name = hello\nworld
字符串 1 与 element.name 和 string2 为
hello
world
【问题讨论】:
-
有几个不清楚的地方:“要么直到字符串的结尾” == “要么直到行尾”? “实际换行符”??
-
目前,
sscanf无法解决此任务,因为它不区分空格和换行符。 -
sscanf 很少能解决任何输入验证问题。将行读入字符串并使用普通字符串 manip 或正则表达式来验证数据。