Comment lire des chaînes de caractères à partir d'un fichier avec sscanf ou fscanf?
Alors, bien sûr, je vais avoir un peu de mal maintenant. Je suis en train de lire un fichier texte qui va quelque chose comme ceci dans les colonnes de l'ordre. Ce que je voudrais faire est de stocker le nombre, le caractère et les colonnes de la chaîne séparément dans les tableaux.
[Numbers] [Characters] [Strings]
Maintenant, alors que j'ai compris comment lire le nombre et le caractère des colonnes dans leurs propres tableaux, je n'arrive pas à le faire avec la colonne de chaîne. Au moins, pas fscanf
ou sscanf
, qui sont les commandes que je veux utiliser.
Comment pouvez-vous lire un fichier organisé en tant que tel à l'aide de fscanf
ou sscanf
? (Je sais à propos de textscan, je veux savoir si c'est possible avec fscanf ou sscanf).
D'accord, permettez-moi d'ajouter un peu de code ici. Ainsi, alors que je faisais des recherches sur ce que j'ai essayé de la manière suivante:
fid = fopen('Data.txt', 'w+');
i = 1;
while ~feof(fid)
line = fgets(fid);
M(i) = sscanf(line, '%d, %c, %s', [3,inf];
i = i+1;
end
Cela fonctionne, mais M finit par sortir, seulement comme un vecteur ligne composé de la première colonne de chiffres dans le fichier de données. Il a juste ignore complètement l'existence de caractères et chaînes de caractères.
Maintenant, pour obtenir une meilleure compréhension de la fonction sscanf j'ai essayé les
fid = fopen('Data.txt', 'w+');
i = 1;
while ~feof(fid)
line = fgets(fid);
M(i) = sscanf(line, '%d, %d, %d', [3,inf];
i = i+1;
end
Pour un ensemble d'échantillons de données comprenant des colonnes de nombres. Ce qui, incidemment, fait exactement la même chose que précédemment; il se contente de lire le premier numéro de la colonne de données et se ferme. Donc, je ne sais même pas comment utiliser sscanf, feof, ou fgets correctement, dans le fond. Donc, je pourrais aussi utiliser un peu d'aide ici.
Et je sais que d'essayer de lire juste des colonnes de nombres est trivial avec fscanf, mais j'essaie de comprendre sscanf et fgets ici.
OriginalL'auteur GeneralPancake | 2013-05-16
Vous devez vous connecter pour publier un commentaire.
La fonction vous êtes à la recherche pour serait plutôt textscan
Il vous permettra de lire le fichier en entier en une seule fois et pour spécifier le format de chaque colonne de la lecture.
Dans votre cas, il doit être quelque chose comme :
Que nous ne connaissons pas exactement le format de votre fichier texte, vous allez probablement avoir à modifier la chaîne de Format.
Vous obtiendrez une cellule du tableau avec le contenu du fichier analysé selon la spécification de format.
Matlab de documentation de l'expliquer en détails les possibilités, la spécification de format, et est livré avec de bons exemples.
Eh bien, je dois admettre textscan fonctionne parfaitement, ce qui, honnêtement, vraiment m'irrite. J'ai juste, vraiment, vraiment envie de savoir comment l'utiliser sscanf et/ou fscanf pour ce faire. Il doit être possible, et j'ai vraiment ne se soucient pas combien de douleur c'est.
OriginalL'auteur Zertrin