저는 계속 Classic K & R Book "The C Programming Language"제 2 판으로 작업 할 것입니다.C 프로그래밍 언어 연습 1.5.4 (코드에서 편집 오류가 있습니까?)
장면.
단어 찾기에 관한 22 페이지의 연습 결과에 문제가있었습니다. 원하는 출력을 얻지 못합니다.
질문.
마침내 나는 코드 구문에서 실수를 발견했다고 생각하십니까?
CODE FRON ORIGINAL PDF.
운동 (복사 및 PDF에서 붙여 넣기) 말 :
1.5.4 말씀이 유용한 프로그램의 우리의 시리즈의 네 번째 계산 단어 이다 느슨한 정의와 행, 단어와 문자를 계산 공백, 탭 또는 개행을 포함하지 않는 문자 시퀀스. 이것은 UNIX 프로그램 wc의 기본 버전입니다.
if (c == ' ' || c == '\n' || c = '\t')
필요가 없습니다 말 :
#include <stdio.h>
#define IN 1 /* inside a word */
#define OUT 0 /* outside a word */
/* count lines, words, and characters in input */
main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF) {
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c = '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}
변경은
이 말은 어디에서 일을 할 NEDED?
if (c == ' ' || c == '\n' || c == '\t')
나의 평가가 맞는 경우. 나중에 23 페이지에서 같은 오류가 나타나 라인을 설명합니다.
확인이 필요합니다.
그것은 논리가 정확히 무엇인지 말해 주지만,이 오류는 이런 책에 있습니다. 확인이 필요해,이 괴물이있을거야.
귀하의 의견을 기다리고 있습니다.
2 줄의 차이점은 무엇입니까 :
는 사용자 로한 요청되어 추가? 질문을 더 분명하게하십시오. 로한 33 분 전.
로한에 대한 답변 :
안녕하세요 덕분에 의문을 제기한다. C에서
x = 5는 변수 x에 값 5를 할당하는 데 사용됩니다. 당신이 원하는 것은 평등의 기호를 확인하는 경우
그러나, X의 == 5 말은 x가 5와 동일한 경우
경우 올바른 ==에게 있습니다 ...이 책을 볼 수있는
이
= '\의 t'말도 안돼 나에게주는 오류
했다C를 할당하는 "C 탭 같은 경우"if (c == '\t')
어디 \ t이다 Tab 키입니다.
== 확인을 두의 값 경우 :
나는 당신이 볼 수있는 위치를 http://www.tutorialspoint.com/cprogramming/c_operators.htm
을 확인할 수 있습니다 내가
요청에 대한 몇 가지 의심
그리고 감사를 명확히 한 희망 피연산자가 같거나 같으면 yes이고 then 조건이 참이됩니다.
(A == B)은 사실이 아닙니다.
2 줄의 차이점은 무엇입니까? 질문을 더 분명하게하십시오. – Rohan
예, 귀하의 가정은 정확합니다, errare humanum est;) –