如何解决getline在while循环中不执行任何操作
我正在使用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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。