開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio 2017
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の3章(小さなツールの作成 - 1つのことだけをうまくやる)、エクササイズ(p. 115)を取り組んでみる。
エクササイズ(p. 115)
コード
#include <stdio.h> int main() { float latitude; float longitude; char info[80]; int started = 0; puts("data=["); while (scanf("%f,%f,%79[^\n]", &latitude, &longitude, info) == 3) { if (started) printf(",\n"); else started = 1; if (latitude < -90 || 90 < latitude) { printf("緯度は-90以上、90以下でなければなりません。\n"); return 2; } if (longitude < -180 || 180 < longitude) { printf("経度は-180以上、180以下でなければなりません。\n"); return 2; } printf("{latitude: %f, longitude: %f, info: '%s'}", latitude, longitude, info); } puts("\n]"); return 0; }
入出力結果(コマンドプロンプト)
C:>type gpsdata.csv 42.363400,-71.098465,Speed = 21 42.363327,-71.097588,Speed = 23 42.363255,-71.096710,Speed = 17 42.363182,-71.095833,Speed = 22 42.363110,-71.094955,Speed = 14 42.363037,-71.094078,Speed = 16 42.362965,-71.093201,Speed = 18 42.362892,-71.092323,Speed = 22 42.362820,-71.091446,Speed = 17 42.362747,-71.090569,Speed = 23 42.362675,-71.089691,Speed = 14 42.362602,-71.088814,Speed = 19 42.362530,-71.087936,Speed = 16 42.362457,-71.087059,Speed = 16 42.362385,-71.086182,Speed = 21 C:>type gpsdata_error.csv 42.363400,-71.098465,Speed = 21 42.363327,-71.097588,Speed = 23 42.363255,-71.096710,Speed = 17 423.63182,-71.095833,Speed = 22 42.363110,-71.094955,Speed = 14 42.363037,-71.094078,Speed = 16 42.362965,-71.093201,Speed = 18 42.362892,-71.092323,Speed = 22 42.362820,-71.091446,Speed = 17 42.362747,-71.090569,Speed = 23 42.362675,-71.089691,Speed = 14 42.362602,-71.088814,Speed = 19 42.362530,-71.087936,Speed = 16 42.362457,-71.087059,Speed = 16 42.362385,-71.086182,Speed = 21 C:>geo2json.exe < gpsdata.csv data=[ {latitude: 42.363400, longitude: -71.098465, info: 'Speed = 21'}, {latitude: 42.363327, longitude: -71.097588, info: 'Speed = 23'}, {latitude: 42.363255, longitude: -71.096710, info: 'Speed = 17'}, {latitude: 42.363182, longitude: -71.095833, info: 'Speed = 22'}, {latitude: 42.363110, longitude: -71.094955, info: 'Speed = 14'}, {latitude: 42.363037, longitude: -71.094078, info: 'Speed = 16'}, {latitude: 42.362965, longitude: -71.093201, info: 'Speed = 18'}, {latitude: 42.362892, longitude: -71.092323, info: 'Speed = 22'}, {latitude: 42.362820, longitude: -71.091446, info: 'Speed = 17'}, {latitude: 42.362747, longitude: -71.090569, info: 'Speed = 23'}, {latitude: 42.362675, longitude: -71.089691, info: 'Speed = 14'}, {latitude: 42.362602, longitude: -71.088814, info: 'Speed = 19'}, {latitude: 42.362530, longitude: -71.087936, info: 'Speed = 16'}, {latitude: 42.362457, longitude: -71.087059, info: 'Speed = 16'}, {latitude: 42.362385, longitude: -71.086182, info: 'Speed = 21'} ] C:>geo2json.exe < gpsdata_error.csv data=[ {latitude: 42.363400, longitude: -71.098465, info: 'Speed = 21'}, {latitude: 42.363327, longitude: -71.097588, info: 'Speed = 23'}, {latitude: 42.363255, longitude: -71.096710, info: 'Speed = 17'}, 緯度は-90以上、90以下でなければなりません。 C:>
0 コメント:
コメントを投稿