前提・実現したいこと
以下に示すテキストファイルから最後の三桁の数字だけを取り出す方法についてお尋ねします。
文字列として取り出し表示することはできたのですが数値に変換する際にエラーが起こってしまいます。
解決に向けてお力添えをお願いします。
該当のテキストコード
2014/1/1,0:00,128 2014/1/1,1:00,131 2014/1/1,2:00,255 2014/1/1,3:00,245 2014/1/1,4:00,239 2014/1/1,5:00,239 2014/1/1,6:00,247 2014/1/1,7:00,260 2014/1/1,8:00,271
該当のソースコード
#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX 100 int main(void) { char s[MAX]; char *p; int m; FILE *fp=fopen("year-2014.csv","r"); while(fgets(s,MAX, fp)!=NULL){ p=strtok(s,","); for(int j=0;j<2;j++){ p=strtok(NULL,","); m=strtol("p",NULL,10); } printf("%d",m); /*printf("%s",p); とすると三桁の数字が文字列として出力されました。*/ } fclose(fp); return 0; }
試したこと
whileを用いて文字列を区切る方法もあると思いますが最後の数字を取り出すことに尽力していたら最終的にforを用いていました。
区切り文字を厳密に設定する必要があるかもしれません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答4件
あなたの回答
tips
プレビュー