J'ai écrit ce code pour compter le nombre de caractères dans un fichier texte: mais après avoir appliqué ce code dans un fichier contient: p> 1
2
3
4
5
6
7
8
9
0
5 Réponses :
Vous lisez un personnage à la fois et chaque ligne contient trois caractères: p>
\ r code>) li>
- une nouvelle ligne (
\ n code>) li>
ul>
(Windows utilise \ r \ n code> comme séquence de nouvelle ligne. Le fait que vous exécutez dans une machine virtuelle sur un Mac n'affecte pas cela.) P>
sous Windows Chaque nouvelle ligne est composée de deux caractères Si vous avez créé votre fichier dans Mac ou Unix / Linux, vous auriez gotton résultat différent (20 caractères). Parce que Unix utilise uniquement Vous pouvez utiliser des éditeurs (tels que NOTEPAD ++) pour vous montrer de nouveaux caractères de ligne ou même passer entre différents modes (DOS / UNIX / MAC). P> \ r code> et
\ n code>. Vous avez 10 lignes, chaque ligne dispose de 1 caractères visibles et de 2 nouveaux caractères de ligne qui ajoutent jusqu'à 30 caractères. P>
\ n code> et mac utilise uniquement
\ r code> pour une nouvelle ligne. P>
La nouvelle ligne est en réalité 2 caractères distincts: LF CR (retour de ligne et retour au chariot). Mais vous sauriez que si vous mettez un point d'arrêt dans votre boucle. Maintenant, pour un crédit supplémentaire, combien d'octets à Unicode? P>
Windows utilise généralement suggère que vous prouvez cela vous-même en faisant cela: p> \ r \ n code> pour la nouvelle ligne, c'est-à-dire des caractères ASCII 0x13 et 0x10.
Console.WriteLine("0x{0:x}", sr.Read());
Il y a un moyen plus facile de le faire. Faites tout le fichier * .txt sur un tableau de chaîne et mesurez-le:
int count = 0; string[] Text = File.ReadAllLines(/*Path to the file here*/); for (int i = 0; i < Text.Count(); i++) { count += Text[i].Length; }
Caractère + retour + nouvelle ligne = 3 caractères par ligne = 3 * 10 = 30 au total.
10 caractères + 10 retours de chariot + 10 aliments en ligne?
? \ r \ n code>
Environnement.NewLine doit correspondre au personnage de la nouvelle ligne dans n'importe quel système d'exploitation.
Avoir une lecture de Méthode StreamReader.Read , la méthode StreamReader.Read lit un seul caractère à la fois.
Pour obtenir le comte, vous pouvez le faire (
string str = fichier.readalltext (@ "c: \ text.txt"); int compte = str.split (nouvelle chaîne [] {environnement.newline}, StringSplitoptions. Aucun) .length; code>)