Exception in thread "main" java.util.InputMismatchException String

Estou aprendendo Java agora e meu professor me passou uma atividade, mas da erro caso eu tente passar o nome da empresa com espaço.
Código:

import java.util.Scanner; 

public class Atv1 {

	public static String g;
	public static Scanner scan = new Scanner(System.in);
	
	public static void main(String[] args) {
		boolean test = true;
	    int T; 
		System.out.println("===================");	
		System.out.println("| Cod | Exercício |");
		
		for (int i = 1; i <= 5; i++) {
			System.out.println("|  "+i+"  |     "+i+"     |"); 
		}
		
		System.out.println("|  6  |    sair   |");
		System.out.println("===================");
		System.out.println("Qual exercício você deseja visualizar?");
		T = scan.nextInt(); 
	    
		switch (T) {
		 case 1:
			Empresa empresa = new Empresa();
			String pNome, pEndereço;
			int pCNPJ, h;
			boolean b = true;
			
			System.out.println("Digite o nome da empresa: ");
			//se passar "Empresa_Tal" não da erro, mas se passar "Empresa tal" da erro			
			pNome = scan.next();  
			
			System.out.println("Digite o CNPJ da empresa: ");
			pCNPJ = scan.nextInt();
			
			System.out.println("Digite o endereço da empresa: ");
			pEndereço = scan.next();
			
			break;
		default: 
			break;
		}
	}
}

Primeiro, a classe Scanner só possuí um método que suporta a quebra de linha, que é o nextLine. Isso já foi discutido aqui no fórum.

Segundo que o método next por padrão só lê até os espaços em branco.
Exemplo:

Scanner in = new Scanner();
String hello = "Hello, World!";
// Nesse casso ele só pegaria o "Hello," pois seu delimitador é o espaço em branco.

Para resolver os problemas é só usar o método nextLine, ao invés de qualquer outro, e classes Wrappers para fazer o parse de tipos.
Exemplo:

Scanner in = new Scanner();
int value1 = Integer.parseInt(in.nextLine());
// Faz o mesmo que o nextInt.

double value2 = Double.parseDouble(in.nextLine());
// Faz o mesmo que o nextDouble.

String value3 = in.nextLine();
// Faz o mesmo que o next, com a diferença de que suporta espaços.
1 curtida

Entendido, muito obrigado pela sua explicação curta e objetiva.