#include "stdio.h"
int main(){
float longi;
float lati;
char info[80];
int started = 0;
puts("Data=[");
while((scanf("%f\n%f\n%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()
如何处理它们?
答案 0 :(得分:2)
所以你的代码中有scanf("%f'\n'%f'\n'%s",&lati,&longi,info)
。
当您破解此代码时:
%f
- 期待一个浮动'
- 期望输入中的文字'
\n
- 期待换行'
- 期望输入中的文字'
......等等。
\n
是一个换行符。未加引号的。
某些手册以单引号显示的原因是代码中由两个符号表示的char
与字符串文字之间的差异。
有关详细说明,请参阅this question。
正确的代码就是你自己说过的代码:
scanf("%f\n%f\n%s",&lati,&longi,info)