2011-02-16 10 views
0

i fgetsを使って行形式の.txtファイルを読み込みます。最初の引数として配列を渡します。異なる行は、配列内の異なる量の領域を埋めるが、私は読み込まれた行の正確な長さを知り、そこに基づいて決定したい。出来ますか?fgets()内の配列サイズ

FILE * old; 
old = fopen("m2p1.txt","r"); 
char third[100]; 
fgets(third,sizeof(third),old); 

今私は、はsizeof(第3)を求める場合には、その明らかに100私はそう自分自身を宣言した(私はサイズを指定せずに「第三」配列を宣言カント)が、私はラインの読み取りの正確なサイズを取得する必要がありますので、ファイルから(それはenitre配列には入っていないかもしれません)。

は可能ですか?何をすべきか?

答えて

6

fgetsが成功すると、バッファに文字列が読み込まれます。その長さを見つけるためにstrlen()を使います。

char third[100]; 

if(fgets(third,sizeof(third),old) != NULL) { 
    size_t len = strlen(third); 
    .. 
} 
+0

ありがとうございました!それはかなりシンプルだった。私は馬鹿になってごめんなさい:D – confused

+2

彼があなたの質問に答えたならば、彼の答えを正しいものとしてマークしてください! –