Galera, estou programando exercícios do URI em C++ e estou usando a linha de comando para compilar, executar e ler entrada para o programa.
Sei que no Linux para compilar se usa:
g++ -o prog prog.cpp
e para executar:
./prog
e para ler uma entrada de um txt se usa:
./prog < entrada.txt
Tenho algumas dúvidas, 3 pra ser mais específico:
- Gostaria de saber qual o nome desse tipo de execução por linha de comando ?
- Existe algum outro tipo execução por linha de comando que possa facilitar minha vida ?
- Qual é o correspondente desses comandos no Windows ?
./prog < entrada.txt
se adicionar > saida.txt
, ficando:
./prog < entrada.txt > saida.txt
Aí prog vai ler as entradas de entrada.txt e botar as saídas no saida.txt. Muito prático!
Tem como fazer no Windows, mas não me recordo. Dps te passo o comando correspondente. Tô tendo aula aqui
Vou indo!
1 curtida
Redirecionamento de entrada
Depende do que você quer fazer
Se for a mesma coisa, você pode usar:
./prog <<\EOF
teste usando um meio alternativo
de redirecionamento de entrada
EOF
Onde EOF é um texto de sua preferência (por convenção se usa EOF, vem de End Of File), assim que o texto tiver uma linha sendo esse texto, o bash (ou outro shell) para de ler
Também pode usar pipelines, é útil pra não precisar refazer funções de outros utilitários:
grep ^"Natanael" arquivo.txt | ./prog
Nesse caso apenas as linhas que começam com Natanael vão ser repassadas pro seu programa, se chama pipe
E ao invés de mandar o bash ler seu arquivo, você manda o seu programa:
./prog arquivo.txt
Do mesmo jeito
Se quiser que seja como se o usuário tivesse digitado, sim mas tem n outros jeitos de ler um txt
1 curtida
era isso que eu estava procurando. Obrigado!!
Existe algum lugar onde eu posso achar referencias e exemplos de redirecionamento de entrada, como essas que vc me deu ?!
1 curtida
Tem, basta pesquisar pelo nome, mas é basicamente isso que eu falei, não vai ter adições, o que vai ter a mais é redirecionamento de saída que não é o que você quer
Só para deixar claro, vc não precisa criar o arquivo saida.txt, ele cria automaticamente. E também não precisa de .txt. Só abrir entrada
com editor de texto, e dps rodar aquele comando:
./prog < entrada > saida
E abrir saida com editor de texto.
1 curtida
Abre outro tópico, o assunto seria outro, aj facilitaria para outros usuários com a mesma dúvida ou que possuem o conhecimento encontrar seu post