簡體   English   中英

printf(“%3d,…)在eclipse juno上不起作用

[英]printf("%3d, …) not working on eclipse juno

package p;

import java.io.*;
public class fifo {

    public static void main(String[] args) throws IOException 
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int frames = 3, pointer = 0, fault = 0, reflen, def = 0;
        int spaces[];
        int reference[];
        int mem_layout[][];

        System.out.println("Reference String Length: ");
        reflen = Integer.parseInt(br.readLine());


        reference = new int[reflen];
        mem_layout = new int[reflen][frames];
        spaces = new int[frames];
        for(int j = 0; j < frames; j++)
                spaces[j] = 0;

        System.out.println("Reference Numbers: ");
        for(int i = 0; i < reflen; i++)
        {
            reference[i] = Integer.parseInt(br.readLine());      
        }
        System.out.println();
        for(int i = 0; i < reflen; i++)
        {
         int search = -1;
         for(int j = 0; j < frames; j++)
         {
          if(spaces[j] == reference[i])
          {
           search = j;
           def++;
           break;
          } 
         }
         if(search == -1)
         {
          spaces[pointer] = reference[i];
          fault++;
          pointer++;
          if(pointer == frames)
           pointer = 0 ;
         }
            for(int j = 0; j < frames; j++)
                mem_layout[i][j] = spaces[j];
        }

        for(int i = 0; i < frames; i++)
        {
            for(int j = 0; j < reflen; j++)
                //System.out.printf("%3d ", reference);
                System.out.printf("%3d ",mem_layout[j][i]); //ERROR UNDER PRINTF
            System.out.println();
        }

        System.out.println("Fault: " + fault);
        System.out.println("Default: " + def);
        System.out.println("Page Fault Rate: " + fault + "/" + reflen + " = " + ((double)fault/reflen)*100 + "%" );
    }

}

因此,我們被告知繼續在家工作。 該代碼在使用另一個版本的eclipse的計算機實驗室中可以正常工作。 我正在使用juno和printf不再起作用。 請幫助提交的內容是明天,我不知道為什么它不再起作用了。

朱諾過時了嗎? 我試着做蝕建議以消除錯誤,但它會產生更多錯誤大聲笑:(

在注釋中,您說錯誤消息是這樣的:

類型PrintStream的方法format(String,Object [])不適用於參數(String,int)

真奇怪 但是,一種可能的解釋是您的Eclipse設置選擇了一個非常舊的Java版本。 在Java 1.5之前,不支持自動裝箱。這將阻止編譯器將int自動裝箱為Integer

啟動Eclipse並打開Window> Preferences。 選擇Java> Compiler首選項。 查看“編譯器符合級別”設置,並將其更改為“ 1.8”。

然后使用Project> Clean重新編譯所有內容。


您還可以更改此設置:

System.out.printf("%3d ", mem_layout[j][i]);

對此:

System.out.printf("%3d ", new Object[]{
                             Integer.valueOf(mem_layout[j][i])});

這使得源代碼與舊的Java編譯器兼容。 但這是一個糟糕的解決方案,IMO。

  • 試試System.out.format(); 而不是System.out.printf();
  • 嘗試安裝他們在實驗室使用的另一個版本的Eclipse
  • 並且,請寫信給我們Eclipse顯示什么錯誤/異常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM