2013-03-24 4 views
-1

저는 프로그램의 목적이 고객에게 반환해야하는 변경 사항을 계산하는 금전 등록기를 설계하고 있습니다.C에서 파일의 float 값 허용

프로그램 입력은 명령 줄 인수에서 파일 형식으로 제공됩니다. 입력 파일에는 여러 줄이 포함되어 있습니다. 각 라인은 하나의 테스트 케이스입니다. 각 행에는 세미콜론으로 구분 된 두 개의 숫자가 들어 있습니다. 첫 번째는 구매 가격 (PP)이고 두 번째는 고객이 제공 한 현금 (CH)입니다.

예 :

15.94, 16.00

17;

16 I는 문자 입력 파일 캐릭터로부터 값을 판독하고 난 거기 string.Is의 형태로 입력을 수신 한 후 변환 용으로 atof 함수를 사용하고 입력을 받아들이는 더 좋고 효과적인 방법 ???

+0

2의 거듭 제곱 인 양으로 현금 레지스터를 설계하지 않는 한 이진 부동 소수점 표현을 사용하는 것은 좋은 생각이 아닙니다. –

+0

플로팅 (또는 이중) 값이 작동하지 않습니다. 모든 돈 값을 센트로 정수로 표현하는 것이 더 좋습니다 ('long int int ...'가 필요할 수도 있음). 따라서 반올림에 문제가 발생하지 않습니다. – vonbrand

답변

1

대신 fscanf()을 사용할 수 있습니다.

+0

나는 fscanf에 대해 읽었지만 쉼표로 구분 된 값으로 사용하는 방법은 무엇입니까? – poorvankBhatia

+1

@poorvank, 세미콜론으로 구분 된 값을 가지고있는 것처럼 보입니다 ... 링크에서 제공되는 문서와 예제를 확인하십시오. 그러나'% f; % f' 형식이 당신이 찾고있는 것 같습니다. – rid

+0

감사합니다! .. – poorvankBhatia