2012-02-02 13 views
2

ファイルを介して複数の変数を読み込む方法を理解しようとしています。私はint値を持っている場合、私は "150"とテキストの行を持っている私のプログラムで "datainput"と呼ばれるファイルを持っている場合、例えば、私は1つを読む方法を知っている。 scanf( "%d"、&値)。ファイルを使ってプログラムを実行すると、ファイルが読み込まれて変数に適用されます。私は今何をしようとしているのかは似ていますが、代わりに2つの値を読み込んでいますので、テキストファイルに "3.1、3.4"というようなものがあり、それを変数1と2に置きます。誰にでもアイデアはありますか?CプログラミングScanF複数の1つのファイルを入力

+1

fscanfはあなたが作業しているファイルへのポインタを渡す必要があることを除いてscanfのような形式を持っていますすべての言葉で。 –

答えて

2

あなたのコードを掲示している場合ちょうどそれを説明しようとするのではなく、この質問を理解することは非常に容易になるだろう

char inFileName[] = "input.txt"; 

    FILE *inFile; 

    /* open the input file */ 
    inFile = fopen(inFileName, "r"); 

    fscanf(inFile, "%d %d", &value1, &value2); //reads two values from FILE inFile 
+0

スペースを区切り文字として使うだけでしょうか? – CMOS

+1

@CalvinMossスペースがファイル内でどのように区切られているのかを確認してください。あなたが望むファイルに他のデリミタを置くこともできます(つまり、値をカンマで区切った場合、 'value1、value2'、scanfは' scanf( "%d、%d"、&value1、&value2); ' –

+1

私たちはこのようなファイルから読みますか? – dicaprio

1

あなたのフォーマットがある場合:

3.1, 3.4 

試してみてください。

float float1, float2; 
int num_things_read = scanf("%f, %f",&float1,&float2); 

The scanf() man pageあなたが使用できるすべての形式の完全なリストを持っています。書式文字列を使用して、printf()のように、出力の形式を指定することができます(まったく同じではありませんが)。

例の短いシリーズhereもあります。

コメンターが指摘するように、ファイルからの読み込みをしている場合、あなたはfscanf()を使用する必要があります:

streamは以前にファイルなど、 fopen()で開いたものです
int num_things_read = fscanf(stream, "%f, %f",&float1, &float2); 

。あなたが機能を使用する必要があるファイルから読み込んでいる場合だけに注目することは、また

scanf("%d %d", &value1, &value2); //reads two values 

:あなたがしなければならないすべてはscanf()コールに追加の書式指定子を追加された二つの値を読み込むこと

+0

セパレータとしてスペースを使用するだけですか?例えば、私が2.2 -4.0をした場合、私はちょうどscanf( "%f%f"、&value1、&value2)を実行すればうまくいくでしょう。コンマの代わりに – CMOS

+1

フォーマット文字列内のスペースは、入力内の0個以上の空白文字に対応しています。したがって、フォーマット文字列が ''%f、%f "'で、入力値が '' 1.2,1.5 "'両方の値が読み取られます。 –

+1

何ですか?ファイルからの読書を求めるOPではないのですか? – dicaprio

関連する問題