2014-05-12 4 views
2

Java에서 유사하거나 정확한 기능을 찾으려합니다. C에서 예를 들어 C의 Java equivalent fscanf

, 위의 예에서

fscanf(file_Qpointer, "%s", BenchmarkQ[jj].owner); 

은 배열은 ".owner"가 뒤에 나는 자바 배열 API에 읽고했지만 난 아무것도 관련 찾을 수 없습니다 그것. 나는 Java에 익숙하지 않으며 API를 읽는 동안 그것을 놓칠 수도있었습니다. 누구든지 Java에서 기능이 무엇인지 깨달을 수 있습니까?

이것은 for 루프에 있습니다. 여기서 나는 원하는 정보가 들어있는 문서를 읽고 각 줄을 배열에 저장합니다.

queryvalue BenchmarkQ[500]; 
    FILE *file_Qpointer;  
    if ((file_Qpointer =fopen("query", "r"))==NULL) 
    { 
     //printf("no such file!\n"); 
     exit(-1); 
    } 
    else 
     rewind(file_Qpointer); 

    for (jj=0; jj<500;jj++) 
    { 
     fscanf(file_Qpointer, "%s",  BenchmarkQ[jj].owner); 
     printf("%s\n",BenchmarkQ[jj].owner); 
     fscanf(file_Qpointer, "%s",  BenchmarkQ[jj].ext); 
     printf("%s\n",BenchmarkQ[jj].ext);  
    } 
+0

이 질문은 많은 자바 환경이 필요합니다. Java 파일, 배열 및 문자열은 C와는 완전히 다른 세계입니다. – hyde

답변

0

여기 ownerBenchmarkQ에서 jj 번째 엔트리의 어레이의 특성이지만 BenchmarkQ[jj]의 부재, 즉 아니다. 기입 유형 queryvalue을 참조하십시오. queryvalue 일부 회원 owner, extfilesize이있는 것으로 보입니다. 아마도 그것의 정의는 몇몇 라이브러리 안에있을 것입니다.

+0

안녕하세요 @Codor, BenchmarkQ []는 queryvalue BenchmarkQ [500]로 선언됩니다. – user3414091

+0

@ user3414091 원래 질문에 추가 정보/코드를 편집하여 모두 볼 수 있도록하십시오. –

+0

Java의 배열에 멤버를 추가하려면 어떻게합니까? 감사! – user3414091

1

다음은 Java에서 Scanner를 사용하는 방법을 보여주는 코드입니다.

import java.util.Scanner; 


public class TestScanner { 

    public static class BenchmarkQ { 
     public String owner; 
     public String ext; 
     public int filesize; 
    } 

    public static void main(String[] args) { 
     int count = 2; 
     BenchmarkQ[] benchs = new BenchmarkQ[count]; 

     Scanner sc = new Scanner(System.in); 
     for (int jj = 0; jj < count; jj++) { 
      benchs[jj] = new BenchmarkQ(); 
      benchs[jj].owner = sc.next(); // Equivalent of %s 
      System.out.printf("Owner '%s'\n", benchs[jj].owner); 
      benchs[jj].ext = sc.next(); 
      System.out.printf("Ext '%s'\n", benchs[jj].ext); 
      benchs[jj].filesize = sc.nextInt(); // Equivalent of %d 
      System.out.printf("Filesize '%d'\n", benchs[jj].filesize); 
     } 

     sc.close(); 
    } 

} 

확인 스캐너의 문서 : http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

+0

안녕하세요 @ 델핀, BenmarqQ []를 어디에서 구합니까? 나는 그것을 초기화 할 수 없었다. Scanner의 문서를 살펴 보았지만 BenchmarqQ와 관련된 것은 없습니다. 미리 감사드립니다! – user3414091

+0

안녕하세요 @ user3414091, BenchmarkQ는 Java 라이브러리의 일부가 아닙니다. 이 예제에서는 사용자 클래스 나 라이브러리의 일부로 간주하여 BenchmarkQ를 직접 선언했습니다. BencharkQ [] 배열은 main에 만들어지고 루프의 BenchmarkQ 요소로 채워집니다. – Delphin

+0

Java 예제의 BenchmarkQ 클래스는 C 예에서 queryvalue 유형을 나타냅니다. 쿼리 값 유형에 대한 세부 정보가 없으므로 Java 라이브러리에서 정의 된 유형을 찾아서 해당 유형을 찾거나 내가 한 것처럼 자신 만의 정의를 만들어야합니다. – Delphin