메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

또질문

쿠로쇼우

#include <stdio.h>


int main (void)
{

  int i=1,a=1,b=0,c=0,d=0;
  char ch[50];
  char ca=0;


  FILE * file = fopen("a.txt", "rt");
  if(file==NULL){
    printf("NULL");
    return 1;
  }

 while(1)
  { 
 fgets(ch, 50, file);
   
    if(feof(file)!=0){
  break;}
 else
 {
 
 fscanf(file,"%c",&ca);
 if (ca==' ')
 {a++;
 c=c+a;}
 else if (('A'<=ca)&&(ca<='z'))
 {b++;
 d=d+b;}
 
 }

    printf("%d : %s: %d단어 %d글자\n",i, ch, a, b );
 i++;
 a=1,b=0;
 
  }
  printf("\ntotal %d줄 %d단어 %d글자\n",i-1,c,d);

  fclose(file);
 
  return 0;
}

여기서 단어,글자 개수가 늘지 않는 이유좀 알려주세요ㅠ

그리고 출력하면  ("%d : %s: %d단어 %d글자) <- 2줄로 나뉘어집니다..

어떻게 해야 할까요 ..

혼자서 여자 저차 이러쿵 저러쿵 한거에요 ㅠ


 

조회 수 :
2854
등록일 :
2008.09.29
01:07:34 (*.153.39.177)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=241991

똥똥배

2008.09.29
06:42:08
(*.38.17.225)
도저히 엉망진창이라서 이거 원...
왜 fgets로 읽고 나서 또 fscan을 쓰시는 겁니까?
ch에 읽었으면 ch를 검사하면 될 것을...

그리고 fgets의 사이즈 제한 50은 너무 작습니다. 1024 정도로 설정하세요.
변수는 a, b, c, d가 아니고 알아 들을 수 있는 이름으로 짓도록 버릇을 들이시도록.

남한테 의지해서는 실력이 늘지 않습니다.
일단 이것은 참고로 공부하시라고 드리는 것이고
계속 노력도 안 하시고 물으시면 답해 드리지 않겠음.
아님 돈을 받던가.

main.cpp
첨부 :

똥똥배

2008.09.29
06:43:16
(*.38.17.225)

아아, 깜빡하고 토탈 처리는 안 했는데 그건 알아서 하세요.
그리고 스페이스를 두번 띄었을 때나 앞에 공백이 있을 때 일어나는 단어 수 버그 등은
스스로 궁리해보세요.

List of Articles