0

fgets を使用して行形式の .txt ファイルを読み取ります。最初の引数として配列を渡します。異なる行は配列内の異なる量のスペースを埋めますが、読み取られる行の正確な長さを知り、それに基づいて決定を下したいと考えています。出来ますか?

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

今、sizeof(second) を要求すると、明らかに 100 です。なぜなら、自分でそう宣言したからです (サイズを指定せずに「3 番目の」配列を宣言することはできません)が、ファイルから読み取った行の正確なサイズを取得する必要があります (配列全体に入力します)。

出来ますか?どうすればいいですか?

4

1 に答える 1

7

fgets が成功すると、文字列がバッファに読み込まれます。その長さを調べるには strlen() を使用します。

char third[100];

if(fgets(third,sizeof(third),old) != NULL) {
  size_t len = strlen(third);
  ..
} 
于 2011-02-16T19:01:00.187 に答える