#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)