c-Scanf()与\n和'\n'以格式说明符提供

  • 本文关键字:格式 说明符 c-Scanf c scanf
  • 更新时间 :
  • 英文 :

#include "stdio.h"
int main(){
float longi;
float lati;
char info[80];
int started = 0;
puts("Data=[");
while((scanf("%fn%fn%s",&lati,&longi,info))==3){ //here is my doubt.

printf("n{latitude:%f, longitude:%f, info:%s},",lati, longi, info);
}
puts("n]");    
}

上面的代码可以按要求工作,但我通过反复尝试才弄明白。这需要三个以"回车"键作为分隔符的输入。最初我提供:

'n'而不是n

在格式说明符中,但这毫无用处;它每次只接受一个输入。

这两者之间有什么区别?scanf()是如何处理它们的?

所以您的代码中有一个scanf("%f'n'%f'n'%s",&lati,&longi,info)

当你分解这个代码时:

  • %f-需要浮点
  • '-输入中应包含文字'
  • n-预期断线
  • '-输入中应包含文字'

。。。等等

n是换行符。未报价。一些手册用单引号显示它的原因是由代码中的两个符号表示的char和字符串文字之间的区别。

请参阅此问题以了解更多解释。

正确的代码是你已经说过的:

scanf("%fn%fn%s",&lati,&longi,info)

最新更新