Comment puis-je obtenir l'entrée lors de la sortie ?
Éditeur PHP Apple vous présentera aujourd'hui une question courante : en PHP, lorsque nous avons besoin d'obtenir une entrée de l'utilisateur, comment devons-nous la générer ? L'obtention des commentaires de l'utilisateur est une partie importante de l'écriture de programmes interactifs, il est donc important de maîtriser la bonne méthode. En PHP, nous pouvons utiliser certaines fonctions intégrées pour obtenir les entrées de l'utilisateur, comme utiliser la fonction `fgets()` pour lire une ligne d'entrée utilisateur à partir de l'entrée standard, ou utiliser la fonction `fgetc()` pour lire depuis l'entrée standard Prendre un caractère. Bien entendu, nous pouvons également utiliser les variables superglobales `$_GET` ou `$_POST` pour obtenir les données soumises par l'utilisateur via le formulaire. Quelle que soit la méthode utilisée, vous devez faire attention à la validation et au filtrage nécessaires des entrées utilisateur pour garantir la sécurité et la stabilité du programme. J'espère que l'introduction ci-dessus pourra aider tout le monde !
Contenu de la question
Ce que je souhaite implémenter, c'est une sorte d'application qui enregistre beaucoup d'informations sur la console (par exemple, un nombre de 0 à 1000000000000) et est capable d'arrêter l'exécution en tapant une commande dans la console (par exemple "arrêter").
J'ai eu l'idée d'utiliser goroutine, cependant, je ne peux pas saisir la commande car le champ de saisie passe en sortie.
Voici mon code :
package main import ( "bufio" "os" ) var process bool = true func commandHandler() { reader := bufio.NewReader(os.Stdin) for process { text, _ := reader.ReadString('\n') if text == "stop\r\n" { process = false } } } func task() { var i int64 = 0 for ; i < 10000000000 || process; i++ { if i%30000000 == 0 { // Just to slow down an output for a while println(i) } } } func main() { go task() commandHandler() }
Et les résultats que j'ai obtenus. Les lettres sont l'entrée que j'essaie de saisir et les chiffres sont la sortie de l'application
Des suggestions sur la façon d'effectuer des entrées/sorties appropriées dans mon application go ?
Solution
Je ne peux pas saisir la commande car le champ de saisie passe à la sortie
Vous pouvez saisir des commandes normalement. Au fur et à mesure que vous les tapez, ils sont répercutés sur votre console. Ceci sera combiné avec tout le reste envoyé à la console, ce qui peut dérouter l'utilisateur - mais pas l'ordinateur.
En supposant que cela correspond réellement à votre système d'exploitation, votre programme fonctionne très bien :
if text == "stop\r\n" {
Pas sur mon système d'exploitation r
。更便携的方法是使用 strings.trimspace
Supprimez tous les espaces.
import ( ... "strings" ) ... ... if strings.TrimSpace(text) == "stop" {
Avec ce changement, le code fonctionne pour moi. Comme vous l'avez dit, la sortie et l'entrée sont insérées dans l'écran, mais vous pouvez toujours taper stop
et terminer le programme.
Des suggestions sur la façon d'effectuer des entrées/sorties appropriées dans mon application go ?
Presque aucun programme de terminal dans le monde réel n'est interactif. Au lieu de cela, les arguments de ligne de commande et les variables d'environnement fournissent sa configuration lorsqu'ils sont appelés. La redirection Shell est généralement utilisée pour conserver (dans un fichier) ou une page (par exemple |less
) toute sortie longue d'un programme.
Vous voyez beaucoup de programmes académiques utilisant le modèle de terminal interactif, où le programme invite l'utilisateur et collecte des données, mais dans le monde réel, cela est très rare et constitue généralement une complication imprudente. L'entrée standard est généralement utilisée pour fournir l'entrée de données requise pour les calculs, plutôt que des commandes utilisateur (telles que des données à manipuler ou à filtrer).
Comme @tinkerer l'a suggéré, les signaux peuvent déjà être utilisés pour terminer votre programme (les détails sont spécifiques au système d'exploitation). Il n'y a donc vraiment pas lieu de s'inquiéter de la façon dont l'application du terminal gère la représentation visuelle des entrées et sorties standard, qui sont interpolées uniquement pour terminer le programme. Il existe de nombreux autres signaux dans l'environnement posix, dont certains sont entièrement destinés à l'utilisateur et peuvent être utilisés à n'importe quelle fin.
Une fois que le runtime nécessite une entrée utilisateur plus complexe, les programmes écoutent généralement les commandes sur un socket. Pour de tels programmes, les interfaces Web fournissant des services http sont de plus en plus courantes en raison de leur simplicité et de leur accessibilité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Étapes de configuration du saut de la page de connexion Layui : Ajouter un code de saut : ajoutez un jugement dans l'événement de clic sur le bouton de soumission du formulaire de connexion et accédez à la page spécifiée via window.location.href après une connexion réussie. Modifiez la configuration du formulaire : ajoutez un champ de saisie masqué à l'élément de formulaire de lay-filter="login", avec le nom "redirect" et la valeur étant l'adresse de la page cible.

layui fournit diverses méthodes pour obtenir des données de formulaire, notamment l'obtention directe de toutes les données de champ du formulaire, l'obtention de la valeur d'un seul élément de formulaire, l'utilisation de la méthode formAPI.getVal() pour obtenir la valeur de champ spécifiée, la sérialisation des données de formulaire et en l'utilisant comme paramètre de requête AJAX et en écoutant l'événement de soumission de formulaire, vous obtenez des données.

Il existe les méthodes suivantes pour l'interaction front-end et back-end à l'aide de layui : Méthode $.ajax : simplifie les requêtes HTTP asynchrones. Objet de requête personnalisée : permet d'envoyer des requêtes personnalisées. Contrôle de formulaire : gère la soumission du formulaire et la validation des données. Contrôle du téléchargement : implémentez facilement le téléchargement de fichiers.

Le servlet sert de pont pour la communication client-serveur dans les applications Web Java et est chargé de : traiter les demandes des clients ; générer des réponses HTTP de manière dynamique ; répondre aux interactions des clients et assurer la protection de la sécurité ;

Dans Vue.js, event est un événement JavaScript natif déclenché par le navigateur, tandis que $event est un objet d'événement abstrait spécifique à Vue utilisé dans les composants Vue. Il est généralement plus pratique d'utiliser $event car il est formaté et amélioré pour prendre en charge la liaison de données. Utilisez l'événement lorsque vous devez accéder à des fonctionnalités spécifiques de l'objet événement natif.

Étapes pour créer une application monopage (SPA) à l'aide de PHP : créez un fichier PHP et chargez Vue.js. Définissez une instance Vue et créez une interface HTML contenant du texte d'entrée et de sortie. Créez un fichier de framework JavaScript contenant les composants Vue. Incluez des fichiers de framework JavaScript dans des fichiers PHP.

JavaServlet peut être utilisé pour : 1. Génération de contenu dynamique ; 2. Accès et traitement des données ; 3. Traitement de formulaires ; 5. Gestion de sessions ; Exemple : créez un FormSubmitServlet pour gérer la soumission du formulaire, en prenant le nom et l'adresse e-mail comme paramètres et en redirigeant vers success.jsp.

Les modificateurs d'événements Vue.js sont utilisés pour ajouter des comportements spécifiques, notamment : empêcher le comportement par défaut (.prevent) arrêter le bouillonnement d'événements (.stop) événement ponctuel (.once) capturer l'événement (.capture) écouter passivement les événements (.passive) Adaptatif modificateur (.self)Modificateur de touche (.key)
