저는 제 자신을 C & R에서 가르치려고 노력하는 합계 C n00b입니다. 제 질문은 당황스럽게 초등 학생입니다. 좋아, 여기 간다. 나는 getchar을 사용하여 예상 한 결과물을주는 프로그램을 얻을 수 없다. 손에 K & R이있는 경우 운동 1.13에 붙어 있습니다. 질문은 "입력에 단어의 길이에 대한 히스토그램을 인쇄하는 프로그램을 작성하십시오."라고하며,이 문제로 인해 수평 버전을 처리 할조차 수 없습니다.getchar을 사용하여 프로그램을 실행하려면 어떻게해야합니까?
저는 Dev-C++ (mingW 컴파일러)를 사용하고 명령 줄에서 프로그램을 실행하면서 XP를 사용하고 있습니다. 내 문제는 프로그램을 실행하려고 할 때 스캔 할 문자를 입력 할 때까지 기다리지 만 입력을 완료하고 Enter를 누르면 아무 것도 수행하지 않습니다.. 기대했던대로 히스토그램을 인쇄 할 것을 기대합니다. 실제로 코드에서 볼 수 있듯이 ctr 배열에있는 내용을 인쇄하려고하면 아무것도 들어 있지 않은지 확인할 수 있기 때문에 단어 길이를 계산하는 것조차 보이지 않습니다. 아무 것도 인쇄되지 않습니다.
나는 그것이 내 코드인지 잘못인지 명령 줄인지 전혀 모르겠다. 그러나 컴파일 할 때 a model program을 실행하려고 할 때 동일한 문제가 발생하기 때문에 시스템과 관련이 있다고 생각합니다. 입력을 입력하고 Enter 키를 누르면 아무 일도 일어나지 않습니다. Ctrl-C를 누르면, 가끔씩 별표가 나오거나 모델 출력처럼 보이지 않는 두 개가 튀어 나옵니다. 다른 때에는 아무 것도하지 않습니다 (바로 프롬프트로 바로 돌아갑니다).
다음은 연습용 코드입니다. 나는 이것에 하루 종일을 보냈으며 프로그래밍을 계속할 수있는 능력에 대해 질문하고 있습니다. 만약 누군가가 나를이 구멍에서 빠져 나올 수 있다면 정말로 고맙겠습니다!
또한 위에서 언급 한 모델 프로그램에 대한 또 다른 질문이 있지만 자체 질문에 게시해야한다고 생각합니다. 모두 감사합니다.
#include <stdio.h>
//#define 1 IN
//#define 0 OUT
int main() {
//start w/ state = OUT
int c = 0;
// int state = OUT;
int len = 0;
int ctr[12];
int i, j;
i = j = 0;
for (i = 0; i <12; i++)
ctr[i] = 0;
while ((c = getchar()) != EOF)
if (c != ' ' && c != '\t' && c != '\n') {
// state = IN;
len++;
printf("%d", len);
}
else {
ctr[len]++;
len = 0;
}
for (i = 0; i <12; i++)
printf("%d\n", ctr[i]);
for (i = 0; i <12; i++) {
printf("%d\n", i);
for (j = 0; j <= ctr[i]; j++)
printf("-");
printf("\n");
}
return 0;
}
문제는 없지만 DevC++를 고려해야합니다. 그것은 버그가 있으며 더 이상 개발되지 않습니다. 훌륭한 FOSS 대안은 Code :: Blocks (http://www.codeblocks.org)입니다. 하지만 내가 말했듯이, 이것은 당신의 문제와 아무런 관련이 없다. IDE를 바꾸면 문제가 해결되지 않을 것이다. –
나는 CB를 잠시 동안 가지고 있었다. 당신은 그것을 믿지 않을 것입니다, 그러나 단순히 * 사용하는 방법을 몰랐을 때가 왔습니다 : | 특히 디버깅 기능 : 일부 심하게 잘못된 버튼을 클릭하면 내 코드의 오류 목록이 나에게 표시되지 않습니다. 문서를 파고 며칠 만에, 나는 포기하고 내 길을 알고있는 유일한 IDE로 돌아갔습니다. D –
아니타, 그 얘기를 들으니 유감스럽게 생각합니다. http://forums.codeblocks.org에서 문제를 묻는 질문을 시도 했습니까? 아니면 여기에 질문을 게시 해 볼 수도 있습니다. 솔직히, DevC++보다 더 좋은 것이 있어야합니다. –