2011-05-14 6 views
1

외부 텍스트 파일을 읽으려고합니다. 파일의 형식에 숫자와 단어 모두 포함 :정수와 문자열이 포함 된 C 및 외부 파일 읽기

hello 1239 4943 melissa 

실제 텍스트 파일 1200 개 단어 이상이 (한 줄에 각 요소). 각 줄을 읽고 문자열로 저장하려고하지만 fscanf는 숫자를 건너 뜁니다. 프로그램에있는 숫자를 읽고 문자열로 저장할 수 있습니까?

char word[1263][13]; 
    FILE * fh; 

    fh=fopen("wordlist.txt","r"); 
    for (a=0;a<1263;a++) 
    { 
     fscanf(fh,"%s",word[a]); 
    } 
    fclose(fh); 
+0

우리가 잘못 무슨 일이 일어나고 있는지 볼 수 있도록 읽기를 수행하는 코드의 비트를 게시하시기 바랍니다. – Dipstick

+1

일반적으로'scanf'와'fscanf'는 문제가 있습니다. 'fgets'를 사용하여 데이터를 한 줄씩 읽은 다음 서식이 필요할 경우'sscanf '를 사용하는 것이 좋습니다. –

+0

나는 fgets를 시도했지만 숫자를 건너 뛰는 것뿐 아니라 줄 바꿈 문자를 읽으면 나중에 코드를 엉망으로 만든 것으로 보입니다. –

답변

0

fscanf을 어떻게 사용하고 있습니까? 다음 코드는 작동합니다

char s1[100]; 
int i1; 
int i2; 
char s2[100]; 

while (!feof (file)) 
    { 
    // Should check return value. 
    fscanf (file, "%s %d %d %s", s1, &i1, &i2, s2); 
    printf ("%s %d %d %s\n", s1, i1, i2, s2); 
    } 
+0

하지만 문자열을 정수로 저장하고 싶습니다. –

1

당신은 fscanf를 통해이를 달성 할 수 있어야한다

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main(int argc, char ** argv) { 
    FILE * source_file; 

    char * buffer = malloc(100 * sizeof(char));  
    char ret = '\0'; 

    source_file = fopen("TENLINES.TXT","r+"); 
    do { 
     ret = fscanf(source_file, "%s", buffer); 
     printf("%s\n", buffer); 

    } while (ret != EOF); 

    return 0; 
} 
관련 문제