プログラムで多次元配列を使用するのに問題があります。基本的に、このプログラムは scanf を使用して、リダイレクトされたファイルからユーザー ID と文字列を読み取ります。ファイル形式は、3 桁のユーザー ID、スペース、および各行のテストでの多肢選択問題の答えを表す文字列です。
111 dabac
102 dcbdc
251 dbbac
私が直面している問題は、ユーザーの数がわからないことと、ファイル データを複数回読み取ることができないことです。使ってみました
for (lineNumber = 0; lineNumber != -1; lineNumber++)
{
int result = scanf("%d ", &data);
if (result == EOF)
break;
for(i = 0; i < numProblems; i++)
{
scanf("%c", &input);
}
ファイル内の行数を取得してから、配列のサイズを設定します。配列は、同じ for ループを使用して、データを読み取る別の関数に渡されますが、
input = arrayName[numProblems][lineNumber];
2 番目の for ループ。私が直面している問題は、scanf がファイルからデータを 1 回しか読み取ることができず、初期化するまでデータを配列に格納できないことです。これには、何人のユーザーがいるかを知る必要があります。
私が設定した方法では、プログラムは行数(ユーザー)を見つけるか、データを配列に格納できます(サイズを任意の数に設定した場合)が、両方はできません。
ファイル名が一定ではないため(また、これはクラス用です...教授はscanfを使用する必要があるため)、scanfを使用する必要があり、ファイル内の行数を取得する方法がわかりません。まだデータを読み取ることができます。scanfを使用せずに行数を見つけるか、データを2回読み取る回避策を誰かが知っている場合は、助けていただければ幸いです。プログラム全体を投稿するのに役立つ場合は、それも可能です。
ありがとうございました、
エリック