Erro no printf :(

21 respostas
L

bom galera meu codigo ta com um erro que naum discubro oque é de mandeira alguma :/

import java.util.Scanner;

public class analyse 
	{
		public void resultadoDoExame()
		{
			Scanner input = new Scanner (System.in);
			
			int aprovado=0 ;
			int reprovado=0;
			int contadorEstudante=1;
			int resultado;
			
			
			while (contadorEstudante <=10)
			{
				System.out.print("entre com o resultado ( 1= aprovado 2 = reprovado )");
				resultado = input.nextInt();
				
				if (resultado == 1)
					aprovado = aprovado +1;
				
				else
					reprovado = reprovado + 1;
				
					contadorEstudante = contadorEstudante + 1;
								
			}
						
			//System.out.printf("passo: %d\n nao passo: %d\n", aprovado,reprovado);	// so comentando essa linha que roda caso contrario não 
			
			if ( aprovado > 8 )
				System.out.println("elevar o valor da matricula");
						
			}
	}
// class que demonstra a classe analyse criando um objeto analysis e //invocando o metodo resutadoDoExame

public class analisetest
	{
		public static void main (String args[])
		{
			analyse application = new analyse();
			application.resultadoDoExame();
			
			
		}
	}

so comentando o printf que roda ... caso contrario não :/

ele retorna a seguinte msg

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, int, int)

at analyse.resultadoDoExame(analyse.java:30)
at analisetest.main(analisetest.java:8)

21 Respostas

L
better:
bom galera meu codigo ta com um erro que naum discubro oque é de mandeira alguma :/
import java.util.Scanner;

public class analyse 
	{
		public void resultadoDoExame()
		{
			Scanner input = new Scanner (System.in);
			
			int aprovado=0 ;
			int reprovado=0;
			int contadorEstudante=1;
			int resultado;
			
			
			while (contadorEstudante <=10)
			{
				System.out.print("entre com o resultado ( 1= aprovado 2 = reprovado )");
				resultado = input.nextInt();
				
				if (resultado == 1)
					aprovado = aprovado +1;
				
				else
					reprovado = reprovado + 1;
				
					contadorEstudante = contadorEstudante + 1;
								
			}
						
			//System.out.printf("passo: %d\n nao passo: %d\n", aprovado,reprovado);	// so comentando essa linha que roda caso contrario não 
			
			if ( aprovado > 8 )
				System.out.println("elevar o valor da matricula");
						
			}
	}
// class que demonstra a classe analyse criando um objeto analysis e //invocando o metodo resutadoDoExame

public class analisetest
	{
		public static void main (String args[])
		{
			analyse application = new analyse();
			application.resultadoDoExame();
			
			
		}
	}

so comentando o printf que roda ... caso contrario não :/

ele retorna a seguinte msg

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, int, int)

at analyse.resultadoDoExame(analyse.java:30)
at analisetest.main(analisetest.java:8)


printf é padrão do C, use System.out.println("passo: " + aprovado + "\nnão passo" + reprovado);
Para os mais puristas:
StringBuffer passar = new StringBuffer();
passar.append("passo:");
passar.append(aprovado);
passar.append(" \nnão passo:");
passar.append(reprovado);
System.out.println(passar.toString());

_Renatu

Para utilizar a impressão formatada, igual o C, de uma lida nessa documentação aqui:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html

thiago.correa

Você tem que escapar a barra, ou seja se você quer impimir \n use \n

System.out.printf("passo: %d\n nao passo: %d\n", new Integer(aprovado).toString(),new Integer(reprovado).toString());
thiago.correa
luidhi:
better:
bom galera meu codigo ta com um erro que naum discubro oque é de mandeira alguma :/
import java.util.Scanner;

public class analyse 
	{
		public void resultadoDoExame()
		{
			Scanner input = new Scanner (System.in);
			
			int aprovado=0 ;
			int reprovado=0;
			int contadorEstudante=1;
			int resultado;
			
			
			while (contadorEstudante <=10)
			{
				System.out.print("entre com o resultado ( 1= aprovado 2 = reprovado )");
				resultado = input.nextInt();
				
				if (resultado == 1)
					aprovado = aprovado +1;
				
				else
					reprovado = reprovado + 1;
				
					contadorEstudante = contadorEstudante + 1;
								
			}
						
			//System.out.printf("passo: %d\n nao passo: %d\n", aprovado,reprovado);	// so comentando essa linha que roda caso contrario não 
			
			if ( aprovado > 8 )
				System.out.println("elevar o valor da matricula");
						
			}
	}
// class que demonstra a classe analyse criando um objeto analysis e //invocando o metodo resutadoDoExame

public class analisetest
	{
		public static void main (String args[])
		{
			analyse application = new analyse();
			application.resultadoDoExame();
			
			
		}
	}

so comentando o printf que roda ... caso contrario não :/

ele retorna a seguinte msg

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, int, int)

at analyse.resultadoDoExame(analyse.java:30)
at analisetest.main(analisetest.java:8)


printf é padrão do C, use System.out.println("seu texto aqui");

O java 5 já possui esse método!

diguix

better, tem certeza de que esta ocorrendo erro?
rodei seu código na minha máquina e funcionou!! Estranho…

…de qlq formar use %n ao invés de \n o printf aceita %n para quebra de linha…

Vlw

L
thiago.correa:
luidhi:
better:
bom galera meu codigo ta com um erro que naum discubro oque é de mandeira alguma :/
import java.util.Scanner;

public class analyse 
	{
		public void resultadoDoExame()
		{
			Scanner input = new Scanner (System.in);
			
			int aprovado=0 ;
			int reprovado=0;
			int contadorEstudante=1;
			int resultado;
			
			
			while (contadorEstudante <=10)
			{
				System.out.print("entre com o resultado ( 1= aprovado 2 = reprovado )");
				resultado = input.nextInt();
				
				if (resultado == 1)
					aprovado = aprovado +1;
				
				else
					reprovado = reprovado + 1;
				
					contadorEstudante = contadorEstudante + 1;
								
			}
						
			//System.out.printf("passo: %d\n nao passo: %d\n", aprovado,reprovado);	// so comentando essa linha que roda caso contrario não 
			
			if ( aprovado > 8 )
				System.out.println("elevar o valor da matricula");
						
			}
	}
// class que demonstra a classe analyse criando um objeto analysis e //invocando o metodo resutadoDoExame

public class analisetest
	{
		public static void main (String args[])
		{
			analyse application = new analyse();
			application.resultadoDoExame();
			
			
		}
	}

so comentando o printf que roda ... caso contrario não :/

ele retorna a seguinte msg

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, int, int)

at analyse.resultadoDoExame(analyse.java:30)
at analisetest.main(analisetest.java:8)


printf é padrão do C, use System.out.println("seu texto aqui");

O java 5 já possui esse método!


Não é fugir do padrão utilizar isso?

L

por isso estou falado … estou lendo o livro do deitel que se refere a jdk5 e la ele usa muito o metodo printf. entaum e coisa do java 6 ne ?

L

Li a respeito, você está compilando com java 5?

bebad

:roll:
não complica velho
usa o system.out.println();

o \n só funciona em modo texto, nao é valido para internet pra quebra a linha se vai precisar usar um “

e pra servlet se vc quizer usar vc precisa criar um

PrintWriter pw = response.getWriter(); 
pw.print("texto");

flw

L

diguix:
better, tem certeza de que esta ocorrendo erro?
rodei seu código na minha máquina e funcionou!! Estranho…

…de qlq formar use %n ao invés de \n o printf aceita %n para quebra de linha…

Vlw


vc ta copilando na java 5 ne ??

L

resolvi aqui … coloquei pra compilar com a jdk 5 = o colega falo ai em cima e funciono … vlw galera :wink:

diguix

sim to compilando no java 1.5;

LPJava

tem certeza? pq o printf eh do java 5 viu no java 1.4 nao vai… e nao encontrei nenhum erro no seu codigo olha se isso compila ai

class Jav5{
public static void main(String []aafa){
int a = 3;
System.out.printf("%d",a);
}}

se isso rodar cara tu ta no java 5 senao veja ai o q tem de errado e cola ai o erro que dar qdo nao eh compilado…

flw!!

L

e coisa do java 6 mesmo … no java 5 compilo beleuza :slight_smile:

Reilander

Rpz… vou dizer a vocês…
Eu ainda vou mais longe:
Eu to usando o 5 e o printf() da problemas sim… mas dependendo da IDE! Por exemplo, no BlueJ ele nao rodava, nem numa versão antiga do JCreator, mas nessa nova versão dele agora não da problema não. Não consegui entender isso mas… fica aí postado o que aconteceu comigo.

LPJava

entoa isso eh um problemas das IDE’s heeh ela que se vire para atualizar… ou nao? se vc usar o velho notepad nao tem problema… alias pelo menos comigo nunca tive usando o notepad :smiley:

Reilander

uhuhauauhauhuihauih
Com certeza!
Na primeira vez que fui executar com o printf(), e deu pau, recorri ao velho e bom bloco de notas e rodou beleuza!
Notepad = IDE para iniciantes!

D

Pois é , desculpem ressuscitar o tópico mas é que estou começando agora no Java e de fato estou com um código parecido, o da página 33 do Deitel 6ª edição e no Eclipse e Netbeans realmente apresenta esse mesmo erro, não executa nem a pau, já no notepad e JCreator 4 pro rodou tranquilo.

Que estranho, alguém sabe o pq desses erros nessas 2 IDE’s conceituadas?

abraço

Daniel

HarfangDesNeiges

Entrei no fórum só pra fazer a mesma pergunta, mas pouco antes de postar acabei encontrando este tópico.

Estou usando Eclipse 3.2.0 e tá dando pau no printf…

Alguma novidade?

Marky.Vasconcelos

Olhe no Java Compiler Level se está compilando em uma versão anterior ao 1.4, se sim mude para 1.5 ou 1.6

HarfangDesNeiges

A solução é essa mesma! grato.

Criado 30 de janeiro de 2007
Ultima resposta 19 de nov. de 2007
Respostas 21
Participantes 11