web-dev-qa-db-ja.com

Cのテキストファイルからint値を読み取る

次の3行を含むテキストファイルがあります。

12 5 6
4 2
7 9

fscanf関数を使用して、最初の3つの値を読み取り、3つの変数に格納できます。しかし、私は残りを読むことができません。 fseek関数を使用してみましたが、バイナリファイルでのみ機能します。

すべての値を整数変数に保存してください。

22
elh mehdi

fscanfを使用した簡単なソリューション:

void read_ints (const char* file_name)
{
  FILE* file = fopen (file_name, "r");
  int i = 0;

  fscanf (file, "%d", &i);    
  while (!feof (file))
    {  
      printf ("%d ", i);
      fscanf (file, "%d", &i);      
    }
  fclose (file);        
}
43
Vijay Mathew

これはどう?

fscanf(file,"%d %d %d %d %d %d %d",&line1_1,&line1_2, &line1_3, &line2_1, &line2_2, &line3_1, &line3_2); 

この場合、fscanf内のスペースは、次のトークンが見つかるまで、空白の複数の出現に一致します。

8
MAK