2016-11-29 1 views
0

보고서 파일은 다음을 포함해야합니다. 1. 단어 수 2. 숫자 대문자 소문자의 3. 번호 숫자의 4. 수텍스트 파일의 내용을 읽고 단어, 대문자 및 숫자의 수를 별도의 파일에 작성하는 프로그램을 작성하십시오.

나는 성공적으로 파일을 읽고 단어 문자와 숫자를 계산하지만 난 새 파일에 내용을 작성하는 문제를 데, 어떤 도움이 될 것이다있다 고맙습니다.

#include <stdio.h> 
#include <ctype.h> 
#define SIZE 40 

int main(void) 
{ 
char ch, filename[SIZE]; 
int digits = 0; 
int upper = 0; 
int lower = 0; 
int entered = 0; 
int words = 0; 
unsigned long count = 0; 
FILE *fp; 
printf("Please enter the filename to read: "); 
gets(filename); 
// "r" reads the file fopen opens the file 
if ((fp = fopen(filename, "r")) == NULL) 
{ 
    printf("Cannot open the file, %s\n", filename); 
} 
else 
{ 
    puts("Successfully opened, now reading.\n"); 

    while ((ch=getc(fp)) != EOF) 
    { 
     if (isalnum(ch)) 
     { 
      if(!entered) 
      { 
       entered = 1; 
       words++; 
      } 

     } 

     else 
     { 
      if (entered) 
      { 
       entered = 0; 
      } 
     } 

     if (isupper(ch)) 
      { 
      upper++; 
      } 

     else if (islower(ch)) 
      { 
       lower++; 
      } 
     else if (isdigit(ch)) 
     { 
      digits++; 
     } 

    } 

    } 

    fclose(fp); //make sure to close the file if you open one 

    char filename2 [SIZE]; 
    FILE *fp2; 

fprintf(stdout, "Please enter the file name to write in: "); 
gets(filename2); 

if ((fp2 = fopen("filename2", "w")) == NULL) 
{ 
    printf("Cannot create the file, %s\n", filename2); 
} 
else 
{ 
    fprintf(fp2, "The file \"%s\" has %lu Words.\n", filename, words); 
    fprintf(fp2, "The file \"%s\" has %lu Digits.\n", filename, digits); 
    fprintf(fp2, "The file \"%s\" has %lu upper case letters.\n", filename, upper); 
    fprintf(fp2, "The file \"%s\" has %lu lower case letters.\n", filename, lower); 

} 

fclose(fp2); 


return 0; 

}

답변

2

대신

if ((fp2 = fopen("filename2", "w")) == NULL) 

쓰기

다음
if ((fp2 = fopen(filename2, "w")) == NULL) 

, 자신을 걷어차.

+0

와우 고맙습니다. 선생님, 내 어리 석음을 용서해주십시오. –