작은 코드 단편입니다.왜 내 wc 구현은 잘못된 단어 수를 제공합니까?
while((c = fgetc(fp)) != -1)
{
cCount++; // character count
if(c == '\n') lCount++; // line count
else
{
if(c == ' ' && prevC != ' ') wCount++; // word count
}
prevC = c; // previous character equals current character. Think of it as memory.
}
는 지금이 위의 코드 조각이 포함 된 파일을 wc
실행할 때 (같이), 나는 48 개 단어를 얻고 있지만이 같은 입력 데이터에 내 프로그램을 사용할 때, 나는 59 개 단어를 얻고있다.
정확히 어떻게 wc와 같은 단어 개수를 계산합니까?
는 이러한 결과뿐만 아니라 기반으로 입력을 게시하는 것이 도움이 될 수 있습니다. 당신은 단어가 항상 공백으로 끝난다 고 가정하는 것 같습니다. 입력의 끝, \ t와 같은 다른 공백 문자 또는 개행 문자가 있다면? – GoodDeeds
입력 파일의 내용을 게시 할 수 있습니까? –
fgetc가 -1을 반환하지 않으면 EOF를 반환합니다. – jarmod