问题描述
我正在使用Ubuntu 20.04。我正在尝试在文本文件中用编码为UTF8的重音字符计数行号。
我使用getline
和wifstream
编写了while循环。
但是,当我启动程序时,我在控制台中有了它:
./jeu_lettre Chemin = /home/duncan/Documents/Programmation_CPP/jeu_des_lettres/liste_test.txt Total lines number = 0
由于getline
似乎看不到行,该如何解决?
...
#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <vector>
#include <string>
int main(int argc,char** argv){
int nbreLigne;
std::vector<std::wstring> dico;
std::string chemin("/home/duncan/Documents/Programmation_CPP/jeu_des_lettres/liste_test.txt");
std::wstring ligne,line;
std::cout << "Chemin = " << chemin << std::endl;
std::wifstream file(chemin.c_str(),std::ios::in);
if (file){
//compte les lignes
file.open(chemin.c_str(),std::ios::in);
while (std::getline(file,ligne)){
nbreLigne++;
dico.push_back(ligne);
std::wcout << dico[nbreLigne] << std::endl;
}
std::cout << "Total lines number = " << nbreLigne << std::endl;
file.close();
}
else
{
std::cout << "ERREUR: Impossible d'ouvrir le fichier." << std::endl;
}
file.open("liste_test.txt");
std::getline(file,ligne);
std::wcout << ligne << std::endl;
return 0;
}
...
解决方法
您没有在while主体中发出任何命令来中断while。