char buf[256]; char S[256]; float a; strcpy(buf, "123abc"); sscanf(buf,"%f%s",&a,S); このコードで a=123.0 S="abc"になるなぁ(;´Д`) そういえばループの中に入れるとおかしくなるんだっけ? fgetsで取ってくた文字列が狂ってるんじゃないかな?