C:如何允许sscanf在字符串前面保留空格?

C:如何允许sscanf在字符串前面保留空格?,c,whitespace,fgets,scanf,C,Whitespace,Fgets,Scanf,嘿,伙计们,我试着做以下几点: 我有一个字符串的形式和uu实际上是空格 \uuuuu1\uuuuuuu\u多线程编程::通过线程提高性能 我想读取不带空格的整数,然后读取字符串的剩余部分,包括字符串前面的空格 我有以下代码: while(fgets(line, MAX_STRINGS, stdin)){ sscanf(line, "%d %88[^\n]s", &num, string_value); printf("%d + %s\n", num, string_val

嘿,伙计们,我试着做以下几点:

我有一个字符串的形式和uu实际上是空格

\uuuuu1\uuuuuuu\u多线程编程::通过线程提高性能

我想读取不带空格的整数,然后读取字符串的剩余部分,包括字符串前面的空格

我有以下代码:

while(fgets(line, MAX_STRINGS, stdin)){
    sscanf(line, "%d %88[^\n]s", &num, string_value);
    printf("%d + %s\n", num, string_value);
}

它读取整数,也读取字符串的其余部分(我对问题的要求是,包括整数在内的整个字符串不会超过88字节),但它会删除字符串前面的所有空格,我需要它们。我怎样才能保留空白?谢谢

删除%d和%88之间的空格。
sscanf
格式字符串中的空格表示“使用并丢弃所有空格”。

你太棒了!非常感谢你的帮助!这就像一个魅力,也解决了一个问题,我将不得不处理后,不知道如何lol!非常感谢。删除
%d%88[^\n]s
中的
s
。也请删除该空间。检查
2==sscanf()
的结果。如果sizeof(string_值)为88,则使用
%d%87[^\n]