使用scanf()分隔符不按预期工作

时间:2017-03-18 16:16:37

标签: c format scanf

我有一个像这样的字符串输入

string@floatValue

这种格式的一组值作为输入传递给程序。我试图用scanf()阅读它们,但无济于事。

我尝试过的一些格式是

scanf("%[^@]s%f",&s,&f);

scanf("%s@%f",&s,&f);

scanf("%s[@]%f",&s,&f);

无论我给出的是什么值(带有@符号和浮点值的字符串)都存储在s本身中。

在上一篇文章中,我看到有人使用此%4[^\n],可用于读取4个输入或直到遇到新行。不幸的是,我不知道输入的大小。我尝试使用getchar()函数进行解决方法。在达到' @'之后也是如此。符号我正在使用scanf("%f",&f)来读取输入,这会给我带来分段错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

&之前删除s,这应该有效:

scanf("%[^@]@%f",s,&f);