2014-12-10 6 views
0
void ReadReferenceStream(char * filename) { 
    char buf[MAXCHAR]; 
    int i; 
    char* np; 

    inputfile = fopen(filename, "r"); 
    if(inputfile == NULL) 
     printf("File is empty!\n"); 

    while((fgets(buf,MAXCHAR,inputfile)) != NULL) { 
     if(buf[0] == '#' || buf[0] == '\n') 
      continue; 
    } 

    np = strtok(buf," "); 

    Pages = malloc(atoi(np)*sizeof(int)); 

그게 전부예요.정수 문자열을 배열에 저장하십시오.

먼저 배열 ('np'변수는 'Pages'배열에 있어야하는 정수)에 대해 동적으로 공간을 할당해야합니다.

그런 다음 # 또는 NULL 문자로 시작하는 입력 텍스트 파일의 모든 줄을 건너 뜁니다.

마지막으로 'np'의 값인 첫 번째 정수를 제외하고 정수를 배열 Pages에 저장해야합니다.

내가 언급 한 것과 똑같이 작동하도록 코드를 변경하려면 어떻게해야합니까? 나는 그것의 대부분을 가지고있다. 나는 배열에 정수를 넣기 위해 고심하고있다.

+0

당신은 대신에 언어 태그와 태그 중 하나를 교체해야합니다. – csmckelvey

+0

그냥 했어요. 감사! – DrDre94

+0

'if' 문은 불필요합니다. 루프가하는 일은'fgets'가'NULL'을 리턴 할 때까지 계속됩니다. 'buf'는 읽은 마지막 문자열이 무엇이든간에 남겨 둡니다. –

답변

0

방금 ​​나머지 정수를 읽어, 지금까지, 그리고 Pages 가정하면 int *Pages 다음과 같이 정의되는 것을 감안할 때 :

for (i = 0; np = strtok(NULL, " "); ++i) Pages[i] = atoi(np); 
관련 문제