このプログラムでは、ユーザーに 2 つの引数、整数の数、およびファイル名を入力させたいと考えています。
- ファイルには 10 行の整数値があります。
- ファイルを読み取り、inArray[]; に配置します。
最後に出力します。
注: 完全なプログラムでは、ランダムな整数で構成されるファイルをスキャンし、昇順で並べ替え、並べ替えられた整数の最初の 10% を出力するプログラムを作成したいと考えています。
エラー: 今のところ、ファイルを読み取って値を inArray に正しく配置できるかどうかをテストしたいのですが、エラーが発生し続けます。
warning: initialization makes integer from pointer without a cast findTotal.c:43:6: warning: passing argument 1 of ‘fopen’ makes pointer from integer without a cast /usr/include/stdio.h:271:14: note: expected ‘const char * __restrict__’ but argument is of type ‘char’
これで私を助けてください、ありがとう
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int numOfInt;
char fileName="";
sscanf(argv[1],"%d",&numOfInt);
sscanf(argv[2],"%c",&fileName);
int i, rc;
/* the origninal list , initialise as 0 index*/
int inArray[numOfInt];
/* the number of output int */
int outNumInt = numOfInt * 0.1;
/* the output array of int */
int outArray[outNumInt];
FILE *inFile;
inFile = fopen(fileName,"r");
/* check if the file is empty */
if(inFile==NULL){
printf("can not open the file");
}
for (i = 0; (rc = getc(inFile)) != EOF && i < numOfInt; inArray[i++] = rc)
{
}//for
fclose(inFile);
for(i = 0; i < numOfInt;i++){
printf("%x\n",inArray[i]);
}
}//main