Fichier C++-redirection
Pour une saisie plus rapide, j'ai lu que vous pouvez faire file-redirection
et d'inclure un fichier avec l' cin
entrées déjà.
C'théorie, il doit être utilisé comme suit
App.exe inputfile outputfile
Que j'ai compris dans le C++ Primer livre, Le code C++ suivant[1] doit être la lecture de cin
d'entrée à partir du fichier texte et ne devrait pas besoin de toute autre indication spécifique du type[2]
[2]
include <fstream>
ofstream myfile;
myfile.open ();
[1] Le code C++ suivant...
#include <iostream>
int main(){
int val;
std::cin >> val; //this value should be read automatically for inputfile
std::cout << val;
return 0;
}
Suis-je raté quelque chose?
Oui, ce n'est pas la façon dont il doit être utilisé.
OriginalL'auteur zurfyx | 2013-08-06
Vous devez vous connecter pour publier un commentaire.
Pour utiliser votre code [1] vous devez appeler votre programme comme ceci:
Vous pouvez également utiliser:
Dans ce cas, la sortie ne serait pas réécrit à chaque exécution de la commande, mais la production sera ajouté au fichier déjà existant.
Plus d'informations sur la redirection d'entrée et de sortie dans Windows, vous pouvez trouver ici.
Noter que le
<
,>
et>>
symboles sont entrés verbatim — ils ne sont pas seulement pour des fins de présentation dans cette explication. Ainsi, par exemple:App.exe < inputfile >> outputfile
. Avis de l'extra " >'. De cette façon, la nouvelle sortie sera ajouté dans le fichier au lieu de l'effacer du contenu précédent.Merci @gawi, je pensais que les < et > ont été utilisés pour indiquer une variable ou quelque chose.
Vous êtes les bienvenus, btw, si vous voulez accélérer votre programme de plus, vous pouvez utiliser printf/scanf fonctions, ou si vous voulez vraiment de la vitesse de lecture/écriture de données utiliser fgets/place des fonctions (mais pour ce faire, vous devez savoir ce que vous faites :))
ouais, maintenant, c'est encore de dire des conneries à propos de
printf/scanf
étant plus rapide quecin/cout
, mais au moins c'est gramatically correcte.Donc, à votre avis cin/cout sont comparables dans le temps d'exécution de scanf/printf? Peut-être qu'ils l'ont améliorée récemment, mais dans le passé, même lorsque vous avez désactivé synchrinzation: std::ios_base::sync_with_stdio(false); les cours d'eau ont été beaucoup plus lente que printf/scanf fonctions. Je n'ai pas été à l'aide de c++ depuis quelques années...
OriginalL'auteur gawi
En outre à l'origine de redirection
>
/>>
et<
Vous pouvez rediriger
std::cin
etstd::cout
trop.Comme suit:
OriginalL'auteur P0W
[Je suis juste expliquer l'argument de ligne de commande utilisés en Question]
Vous pouvez fournir un nom de fichier comme entrée de ligne de commande pour le executible, mais alors vous devez les ouvrir dans votre code.
Comme
Vous avez fourni deux arguments de ligne de commande à savoir inputfile & outputfile
[
App.exe inputfile outputfile
]Maintenant dans votre code
line
àvOutFile
et seulement ensuite, vérifiezvInFile.good()
. Le bon ordre dans la boucle doit être :read line, check if read succeeded, write line, goto read
Ouais Merci pour le tuyau. Je vais le corriger
OriginalL'auteur Dr. Xperience
Il est important que vous compreniez le concept de redirection. Redirection redirige l'entrée standard, la sortie standard et d'erreur standard.
La commune de redirection de commandes sont les suivantes:
>
redirige la sortie standard d'une commande vers un fichier, d'une réécriture de contenu précédent.$ command > file
>>
redirige la sortie standard d'une commande vers un fichier, ajouter du nouveau contenu à l'ancien contenu.$ command >> file
<
redirige l'entrée standard d'une commande.$ command < file
|
redirige la sortie standard d'une commande vers une autre commande.$ command | another_command
2>
redirections d'erreur standard vers un fichier.$ command 2> file
$ command > out_file 2> error_file
2>&1
redirige stderr vers le même fichier que la sortie standard est redirigée.$ command > file 2>&1
Vous pouvez combiner la redirection:
Même si, il ne fait pas partie de votre question, vous pouvez également utiliser d'autres commandes sont puissant lorsqu'il est combiné avec la redirection de commandes:
sort
: trie les lignes de texte par ordre alphabétique.uniq
: filtres en double, à côté des lignes de texte.grep
: recherche d'un modèle de texte et de sorties.sed
: recherche d'un modèle de texte, les modifie, et les sorties.OriginalL'auteur lmiguelvargasf