私が取り組んでいるプロジェクトがどこから始まるのかよく分かりません。この考え方は、入力ファイルからデータ(整数)を読み込むことです。私たちは各整数を1行ずつ1行ずつ読み込むことになっています。配列は使用できません。ループのみ。空白で区切られた1行単位のファイルからの整数の読み込み
3
5 -5 0
5
1 -2 3 -4 5
これは私がこれまでに(持っているものされています。また、我々は、入力ファイルは、次のようにフォーマットされ
< 2の整数(下記の例では、すなわちライン1と3)で行を無視する必要がありますスニペット):
while (fscanf(inFileHandle, "%d", &num) == 1) {
//read in one number, add to sum
sum += num;
if (num > highest) {
highest = num;
}
else if (num < lowest) {
lowest = num;
}
}
/* while ((c = (char)getc(inFileHandle)) != EOF) {
if (c == ' ') {
printf("space found");
}
else if (c == '\n') { //newline reached
}
else {
printf("int found");
}
}*/
fclose(inFileHandle);
データが読み込まれると、計算が行われるはずですが、それはこの問題のポイントではありません。
私は、fscanfを使って整数で読むwhileループを持っていますが、それは完全に私が望むものではありません。行に2つ以上の整数がある場合(入力ファイルの行2と行4のように)、整数で読み込みたいだけです。
また、getc()を使って一度に1文字ずつ読み込み、個々のchar "c"をチェックしようとしましたが、そのアイデアで枯渇しました。
どのような方法で開始するのですか?
不明な点がある場合は、お知らせください。
[Cのファイルからintの行を読み取る]の可能な複製(https://stackoverflow.com/questions/28871314/readrows-of-ints-from-a-file-in-c) –
2つよりも少ない整数の行を無視するという要件のために、 'fscanf()'を簡単に使うことはできません。 'fscanf()'は、入力フィールドを区切るすべての空白を、改行を含めて同じものとして扱います。あなたは 'fgets()'で一度に行を読み込み、 'sscanf()'を使うことができますが、あなたの入力フォーマットはかなりシンプルなので、実際には文字単位で動作するパーサを書く方が簡単かもしれません。 –
あなたの質問を完全に理解するには:行に5つの整数があれば、5つの整数をすべて読み込む必要がありますか? – 4386427