sscanfでの読み込みの不具合
Posted: 2011年4月23日(土) 18:19
windows visual studio 2008を使っています。
sscanfを利用して、空白のある行の文字も読み込むように
したいのですが、なかなかうまくいきません。
下のコードでのrow、col、valueの値が大きくなってしまいます。
どうすれば正しく表示されるでしょうか?
data1-1.txtというのは、
こんな感じのものです。空白の無い1行目はちゃんと読み込めています。
sscanfを利用して、空白のある行の文字も読み込むように
したいのですが、なかなかうまくいきません。
下のコードでのrow、col、valueの値が大きくなってしまいます。
どうすれば正しく表示されるでしょうか?
#include <stdio.h>
#include<stdlib.h>
int main(void){
int row,col,value,gyouretu;
char buf[1024];
FILE *fin;
if ((fin = fopen("data1-1.txt", "r")) == NULL) {
printf("file open error!!\n");
return 1;
}
if(fgets(buf,sizeof(buf),fin)!=NULL){
sscanf(buf,"%d",&gyouretu);
printf("gyouretu=%d\n",gyouretu);
}
while(fgets(buf,sizeof(buf),fin)!=NULL){
sscanf(buf,"%d %d %d",&row,&col,&value);
printf("row=%d col=%d value=%d\n",&row,&col,&value);
/*文字列の処理*/
}
fclose(fin);
return 0;
}