我有以下程序調用Scorecommandline
:C程序不讀取來自命令行.dat文件
int main (int argc, char *argv[]) {
if (argc!=15) {
usage();
exit(1);
}
int iArray[14];
int i = 0;
while(1){
if(scanf("%d",&iArray[i]) != 1){
break;
}
i++;
if(i == 14) {
i = 0;
}
}
int age = atoi(iArray[1]);
int b_AF = atoi(iArray[2]);
int b_ra = atoi(iArray[3]);
int b_renal = atoi(iArray[4]);
int b_treatedhyp = atoi(iArray[5]);
int b_type2 = atoi(iArray[6]);
double bmi = atof(iArray[7]);
int ethrisk = atoi(iArray[8]);
int fh_cvd = atoi(iArray[9]);
double rati = atof(iArray[10]);
double sbp = atof(iArray[11]);
int smoke_cat = atoi(iArray[12]);
int surv = atoi(iArray[13]);
double town = atof(iArray[14]);
double score = cvd_femal(age,b_AF,b_ra,b_renal,b_treatedhyp,b_type2,bmi,ethrisk,fh_cvd,rati,sbp,smoke_cat,surv,town,&error,errorBuf,sizeof(errorBuf));
if (error) {
printf("%s", errorBuf);
exit(1);
}
printf("%f\n", score);
}
在我所旨在用於對該程序中的ARGS .dat文件,但是,如果我鍵入:
cat testscandata.dat | ./ScorecommandLine
該程序不讀取作爲程序參數的文件。我該如何解決這個問題?
感謝
爲什麼不使用'./ScorecommandLine
bash0r
你正在掃描一切到一個整數數組,然後嘗試將這些整數從字符串轉換爲... ints? – dreamlax
@ bash0r - 不幸的是,這給了我同樣的東西 - 只是等待用戶輸入 – brucezepplin