这是我的代码片段和输出。这里 config_time
值我从 .txt
文件中读取,它的值“15s
”(不要说你没有初始化),这个值是用户定义的配置时间,这就是我阅读的原因这个值来自文件。我想要 15
和 s
形式的输出。即value=15 param= s
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void fun ()
{
char config_time[20];
int r;
char param;
int value;
printf("%s\n",config_time);
r = sscanf (config_time, "%d%c", &value, ¶m);
printf ("v= %d p=%c \n", value, param);
}
输出***
"15s"
v= 1995421524 p=v
提前致谢
答案 0 :(得分:0)
你需要跳过引号
char param, config_time[20] = "\"15s\"";
int value;
printf("%s\n", config_time);
int r = sscanf(config_time + 1, "%d%c", &value, ¶m);
// ^^^ skip the initial quote
if (r != 2) /*error*/;
printf ("r = %d v= %d p=%c\n", r, value, param);
或者在格式字符串中使用文字引号:sscanf(config_time, "\"%d%c\"", ...)