나는 C로 수업을 듣고 있으며 다음과 같은 과제에 직면 해있다. 1. XCode를로드하고 새로운 C 프로젝트를 시작한다. 원하는 경우 프로젝트에서 불필요한 코드 인 을 제거하여 프로젝트에서 주 기능을 실행하는 데 필요한 것만 가지고 으로 남겨 두십시오. 2. 사용자에게 두 개의 값을 입력하라는 메시지를 표시합니다. 첫 번째 문자는 이고 값은 'D'또는 'C'입니다. 두 번째 값은 금액을 나타내는 부동 소수점 포인트 값이어야합니다. , D 250 \ n C, 500 \ n 4. 테스트 프로그램을하고 를 생성하는 텍스트 파일을 검사 : 각 값으로 3. 다음과 같은 형식으로 저장하는 텍스트 파일에 기록에게 그것을 입력 그것이 필요한 형식으로되어 있는지 확인하십시오. 5. 시작 잔액을 $ 1,000.00으로 가정하고 이전에 작성한 텍스트 파일에서 각 항목을 더하거나 뺄 때 계정에 대한 완료 원장 및 최종 잔액을 으로 출력하는 두 번째 프로그램을 작성하십시오. 'C'로 표시된 항목 은 계정에 추가해야하고 'D'로 표시된 항목 은 출금 (공제)해야합니다.파일 읽기 및 인쇄
나는 이미 파일을 만들었고 5 단계로 넘어갔습니다. 파일에서 'c'또는 'd'인지를 확인하는 첫 번째 문자를 얻는 방법을 알고 있지만 이후에는 그렇지 않습니다. 같은 줄에서 숫자 값을 얻는 방법 어떻게해야합니까? 이것은 지금까지 (내가/다른 경우 경우 제표에 넣어 무엇 확실하지 오전) 내 코드입니다 :
FILE *pFile = fopen("Users/Justin/Desktop/Ledger.txt", "r");
float startingBalance = 1000.00;
char action;
if(pFile != NULL)
{
while(!(feof(pFile)))
{
fgets(action, 1, pFile);
if(action == 'D' || action == 'd')
{
}
else if(action == 'C' || action == 'c')
{
}
else
printf("IO Error: Problem with file");
}
}
return 0;
}
'는 fgets (액션 , 1, pFile); '컴파일러가 경고를 했습니까? –
['man strtol'] (http://www.manpagez.com/man/3/strtol/) 및 ['man fgets'] (http://www.manpagez.com/man/3/fgets)을 확인하십시오. /). 'fscanf()'를 사용하려고 시도하지 * 않습니다. 왜냐하면 그 함수는 잘못된 입력/읽기 실패에도 불구하고 적절하게 사용하기가 쉽기 때문입니다. – DevSolar
그리고'fgets'의 반환 값을 사용하여 읽기를 종료하고'feof'에 의존하지 마십시오. ('fgets'는 파일의 끝에 도달하면 NULL을 반환합니다.) –