我正在尝试使用sscanf(inputCmd, "%s%d", cmd, value);
将字符串inputCmd
转换为字符串cmd
,并将我的Arduino草图中的value
转换为inputCmd
。但是它不起作用,因为显然变量是错误的类型(String,而不是char *)
inputCmd的格式为FOO90,并且数字或字符串的长度都不能假定为常量。将cmd
的2个部分分开并将它们存储在2个变量中的最佳方法是什么? value
应为FOO,DataLossError: Unable to open table file C:\Users\Mert\best_model.ckpt: Data loss: file is too short to be an sstable: perhaps your file is in a different file format and you need to use a different restore operator?
[[Node: save_5/RestoreV2_51 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_arg_save_5/Const_0_0, save_5/RestoreV2_51/tensor_names, save_5/RestoreV2_51/shape_and_slices)]]
应为90。
感谢。
答案 0 :(得分:2)
除String
与char*
的问题外,scanf
格式"%s"
读取空格分隔的字符串。如果字符串和数字之间没有空格,则无法使用sscanf
。
作为一种可能的解决方案,您可以尝试获取输入字符串的每个部分的substring,以及数字部分convert it to an int
。
要找出第一个子字符串的长度(应放入cmd
)和数字的起始位置,您需要迭代字符串的字符,直到找到{{3} } character。