나는 F에서 C로 변환하고 C로 변환하는 변환기를 만들어야합니다. 프로그램에는 두 개의 매개 변수가 있어야합니다. 첫 번째는 필요한 변환 유형이고 두 번째는 두 개의 매개 변수를 가져야합니다. 예 : ./program -f 50.0 및 출력 : 10.00 ° C = 50.00 ° F 또한 변환을 수행하는 두 가지 f2c 및 c2f 함수를 사용해야합니다. 이것은 잘 실행되는 내 코드이지만 어떤 이유로 든 if가 액세스되지 않기 때문에 아무 것도하지 않습니다. 여기화씨에서 섭씨로 C
#include <stdio.h>
#include <float.h>
#include <string.h>
float c2f (float c);
float f2c (float f);
int main(int argc, char *argv[])
{
char fArg = "-f";
char cArg = "-c";
float arg2;
sscanf(argv[1], "%f", &arg2);
if(strcmp(argv[0], &cArg) == 0)
{
float fValue = c2f(arg2);
printf("%f C = ", arg2);
printf("%f F\n", fValue);
}
else if(strcmp(argv[0], &fArg) == 0)
{
float cValue = f2c(arg2);
printf("%f C = ", cValue);
printf("%f F\n", arg2);
}
}
float c2f (float c)
{
float f;
f = 9*c/5 + 32;
return f;
}
float f2c (float f)
{
float c;
c = ((f-32) * 5)/9;
return c;
}
하여 인덱스를 증가시킨다. 그래서 ... 'else'를 추가하면 아마도 약간의 결과물을 얻게 될 것입니다. 예 : '...} else {printf ("args는 일치하지 않습니다 \ n"); }'argv [0]'은 실행 파일의 이름입니다. 인수는'[1]'...에서 시작합니다 ... –
명령 행에서 전달하는 첫 번째 인수는 일반적으로'argv [1]'입니다 ('argv [0]'은 일반적으로 프로그램 이름입니다). 또한 strcmp (argv [0], & cArg)'는 strcmp (argv [1], cArg)이어야합니다. – Dmitri
예, 테스트가 실패하면 모두 다른 테스트를 통해 확인했습니다. argv [0]을 argv [1]로 변경해도 아무 것도 일어나지 않습니다. 또한, 세그먼트 삭제 오류가 나타나면 – mateicoman