Maison > développement back-end > Golang > Fscanf et en omettant des champs comme en C

Fscanf et en omettant des champs comme en C

WBOY
Libérer: 2024-02-12 16:18:05
avant
1177 Les gens l'ont consulté

Fscanf 并像 C 中那样省略字段

Contenu de la question

Est-il possible d'omettre des champs %*s comme en C ?

var pid int
fmt.Fscanf(r, "%*s %d", &pid)
Copier après la connexion

Solution de contournement

En fait, vous ne pouvez pas faire cela dans Go (du moins sur Go 1.21.0).

Le code source indique :

(Fscanf array(r io.Reader, format string, a...any) dans <code>a). Par conséquent, vous devez définir un paramètre dans a même si vous ne vous souciez pas de sa valeur

Si vous ne souhaitez pas définir de variables, vous pouvez utiliser :

var pid int
fmt.Fscanf(r, "%s %d", new(string), &pid)
Copier après la connexion

Autres alternativesio.ReadAll

Pour votre cas spécifique, pour analyser quelque chose dans le lecteur, vous pouvez d'abord lire le lecteur dans une chaîne (par exemple

) : strings.Split CB835C294C06824721603abd255bd78a

Utilisez ensuite la méthode
    ou l'expression régulière, par exemple :
  1. strings.Split
  2. avec
  • pidString := strings.Split(string(s), " ")[1]
    pid, err := strconv.Atoi(pidString)
    if err != nil {
        panic(err) // handle the error
    }
    
    Copier après la connexion
  • Utilisez des expressions régulières :

    re := regexp.MustCompile(`[^\s]+ (?P<pid>\d+)`) // similar to "%s %d"
    matches := re.FindStringSubmatch(s)
    pidString := matches[re.SubexpIndex("pid")]
    pid, err := strconv.Atoi(pidString)
    if err != nil {
        panic(err) // handle the error
    }
    
    Copier après la connexion
    🎜Il existe peut-être d'autres moyens, mais ceux-ci devraient suffire. J'espère que cela pourra aider. 🎜

    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!

    source:stackoverflow.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal