gpt4 book ai didi

c - argv[2] 值未从 cmd 正确传递

转载 作者:太空宇宙 更新时间:2023-11-04 07:25:52 24 4
gpt4 key购买 nike

这段代码有问题:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 20

int main( int argc , char * argv[])
{
int giorno , mese , anno , metri , primo_g = 31, primo_m = 12, primo_a = 3000, i = 0 ;
char tipo , destinazione [N+1] ;
float km_arrivo = 0 , costo_tot = 0 ;
FILE * fdati;

if(argc != 2) {
fprintf(stderr ,"Errore nella linea di comando\n");
exit (EXIT_FAILURE);
}

if ((fdati = fopen ("viaggi.dat", "r")) == NULL ) {
fprintf(stderr ,"Errore nell'apertura del file\n");
exit (EXIT_FAILURE);
}

while ((fscanf(fdati , "%s %d/%d/%d %d %c" , destinazione , &giorno , &mese , &anno , &metri , &tipo))!= EOF){
if (strcmp (argv[2],destinazione) == 0 ) {
if((tipo == 'R')||(tipo =='r')){
i++;
km_arrivo = km_arrivo + (float)(metri/1000) ;
costo_tot = (i*5) + 0.10 * (km_arrivo);
}
}
if ((anno<primo_a)||((anno==primo_a)&&(mese<primo_m))||((anno==primo_a)&&(mese==primo_m)&&(giorno<primo_g))){
primo_a= anno;
primo_m = mese;
primo_g = giorno;
}
}
if (fclose(fdati) != 0 ){
fprintf(stderr , "Errore nella chiusura del file\n");
exit(EXIT_FAILURE);
}

printf("Chilometri da %s: %.2f\n", argv[2] , km_arrivo);
printf("Data primo viaggio : %d/%d/%d\n", primo_g , primo_m , primo_a);
printf("Il costo totale dei viaggia da torino : €%.2f", costo_tot);
exit(EXIT_SUCCESS);
}

Viaggi.dat 包含:

torino 22/01/2011 120000 A
milano 01/03/2011 80000 R
genova 03/06/2011 100000 A
bologna 01/02/2011 100000 A
torino 15/01/2011 120000 R
milano 20/01/2011 80000 R
torino 01/01/2011 80000 A
torino 22/01/2011 80000 R

问题是,当我从 cmd 运行程序并写入 argv[2] 的值(例如“Torino”)时,它告诉我程序停止工作。如果我在不写入 argv[2] 的值的情况下运行程序,它运行良好并且会出现 stderr 消息。

提前谢谢你,

问候。

编辑:我将 argv[2] 更改为 argv[1] 但我仍然遇到同样的错误。

我从 cmd 运行它,像这样:

C:\Users\HP G6\Desktop\fasdb\bin\Debug>fasdb.exe torino

最佳答案

请记住 argcargv 数组中的条目数,因此如果 argc2那么在 argv 数组中只有索引 01。要使用 argv[2],则 argc 必须为 3

argv[argc]始终NULL

关于c - argv[2] 值未从 cmd 正确传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com