2014-10-24 7 views
0

제 문제는 텍스트 파일의 문자를 배열로 읽으려고한다는 것입니다. 배열의 원래 크기는 텍스트 파일의 항목 수보다 길지만 사용 된 배열의 색인 만 인쇄하려고합니다. 그런 다음 배열은 printCharacterArray 함수로 인쇄됩니다.배열로 텍스트 파일 읽기, 함수를 통해 인쇄

프로그램이 제대로 컴파일되고 실행되며 배열의 문자가 있어야하는 빈 줄이 인쇄됩니다. 문제는 분명히 텍스트 파일 엔트리가 배열로 읽히지 않는다는 것입니다. 제안? 감사.

#include <stdio.h> 

#include <stdlib.h> 

#define FILENAME "hello.txt" 

#define SIZE 200 

//function prototype 
int printCharacterArray(char encrypted[], int k); 

int main() 
{ 
    //Declare variables 
    int key; 
    int k = 0; 
    int retValue; 
    FILE *message; 

    //Create array 
    char encrypted[SIZE]={'\0'};  

    //Open file 
    message = fopen(FILENAME,"r"); 

    //check that file opened 
    if (message == NULL){ 
     printf("File didn't open."); 
     fclose(message); 
    }else{ 
     fscanf(message,"%d\n",&key); 
     //set loop to read rest of file 
    while (!feof(message)){ 
     fscanf(message,"%c\n",&encrypted[k]); 
     k++; 
     } 
    fclose(message);  
    } 
    //Call and catch function 
    retValue = printCharacterArray(encrypted, k); 
    if (retValue==0){ 
     printf("Exit failure, retValue = 0");  
     return EXIT_FAILURE; 
    }else{ 
     printf("Exit success, retValue != 0"); 
     return EXIT_SUCCESS; 
    } 
    } 

    //Function Definition 

    int printCharacterArray(char encrypted[ ], int k){ 
     int g; 
     if (k==0){ 
      printf("EXIT FAILURE, k = 0"); 
      return EXIT_FAILURE; 
     }else{ 
      for (g=0; g<=k; g++){ 
      printf("%c\n",encrypted[k]); 
      } 
      return EXIT_SUCCESS; 
     } 
    } 
+0

1) '는 retValue == 0'-> 'retValue EXIT_FAILURE' == 2) g'g '<=k' --> BLUEPIXY

+0

하면'암호화되지 인쇄해야 [암호화 된 [k] 대신 [g]'. (루프 카운터로 'i', 'j', 'k'와 사물의 숫자로 'n'과 'm'을 사용하기 때문에 자리에 잠시 머물렀다.) –

답변

0

fscanf (메시지 "%의 C"& 암호화 [K]); 새로운 라인은 '\ n'
암호화 [g]