C:如何让sscanf在字符串前保留空格?

时间:2013-10-28 19:20:30

标签: c whitespace fgets scanf

嘿伙计们,所以我正在努力做到以下几点:

我有一个表单的字符串,_实际上是空格。:

__ 1 _ __ _Multithreaded Programming ::通过线程提高性能

我想读取整数没有空格,然后读取字符串的剩余部分,包括将在字符串前面的空格。

我有以下代码:

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

它读取整数并且它还读取字符串的其余部分(我对问题状态的要求是整个字符串包括整数不会超过88个字节)但是它忽略了字符串前面的所有空格我需要他们。我怎样才能保留白色空间?谢谢!

1 个答案:

答案 0 :(得分:3)

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