统计代码文本文件的例子
代码来自:http://bbs.youkuaiyun.com/topics/390358144
错误代码:
#include <iostream>
#include <fstream>
#include <string>
int main()
{
using namespace std;
const char filename[] = "test.cpp";
ifstream fin;
string temp;
fin.open(filename);
if (!fin.is_open())
{
cout << "不能打开文件"<< filename << endl;
exit(EXIT_FAILURE);
}
int count = 0;
getline(fin, temp);
while (fin.good())
{
count++;
getline(fin, temp);
}
fin.close();
cout << "文件" << filename << "共有"
<< count << "行。\n";
return 0;
}
错误原因:getline遇到 eof, good函数返回false.所以没有计数,漏计了一行.
正确做法一:
int main()
{
using namespace std;
const char filename[] = "c:\\1.txt";
ifstream fin;
string temp;
fin.open(filename);
if (!fin.is_open())
{
cout << "不能打开文件"<< filename << endl;
exit(EXIT_FAILURE);
}
int count = 0;
while(fin.peek()!=EOF)
{
count++;
getline(fin, temp);
cout<<temp<<endl;
}
fin.close();
cout << "文件" << filename << "共有"
<< count << "行。\n";
return 0;
}
注意不能用fin.eof ,会造成错误.
正确做法2:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
using namespace std;
const char filename[] = "test.txt";
ifstream fin;
string temp;
fin.open(filename);
if (!fin.is_open())
{
cout << "不能打开文件"<<filename << endl;
exit(EXIT_FAILURE);
}
int count = 0;
while (getline(fin, temp))
{
count++;
cout<<temp<<endl;
}
fin.close();
cout << "文件" << filename << "共有"
<< count << "行。\n";
getchar();
return 0;
}
统计代码行数(包括空行)
最新推荐文章于 2022-09-20 19:00:00 发布
本文介绍了两种正确统计代码文本文件行数的方法,包括避免在遇到文件结束符EOF时漏计一行的问题。通过示例代码详细解释了如何使用getline和ifstream来实现准确的行数统计。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
961

被折叠的 条评论
为什么被折叠?



