Java相当于C fscanf

时间:2014-05-12 08:42:00

标签: java c arrays scanf

我想找出Java中类似或确切的函数。

例如C,

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

在上面的示例中,数组后面有一个“ .owner ”,我一直在阅读Java Array 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);      
    }

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

此处owner不是数组的属性,而是BenchmarkQ[jj]的成员,即jjBenchmarkQ条目的成员。请参阅queryvalue的条目类型。 queryvalue似乎有一些成员ownerextfilesize。也许它的定义在某个库中。

相关问题