#include <stdlib.h>
void printLine(char* line) {
char lat, lon;
unsigned int year, month, day;
float temp, uncertainty, latitude, longitude;
char country[100], city[100];
int result;
result = sscanf(line, "%u-%u-%u,%f,%f,%[^,],%[^,],%f%c,%f%c", &year,
&month,&day, &temp, &uncertainty, city, country, &latitude, &lat, &longitude, &lon);
printf("%u-%u-%u,%f,%f,%s,%s,%f%c,%f%c\n", year, month, day, temp, uncertainty,
city, country, latitude, lat, longitude, lon);
printf("sscanf read %i variables\n", result);
}
int main() {
char line[] = "2013-08-01,19.005,3.621,Addis Abeba,Ethiopia,8.84N,38.11E";
char line2[] = "1816-03-01,27.426,1.793,Bangkok,Thailand,13.66N,99.91E";
char line3[] = "1743-11-01,3.264,1.665,New York,United States,40.99N,74.56W";
printLine(line);
printLine(line2);
printLine(line3);
}
Некоторые строки он читает правильно, а некоторые строки не читает последний символ.Я не уверен, что вызывает эту ошибку, я, вероятно, вызываю какое-то неопределенное поведение, но я не уверен, что это такое.