C++计算文件的行数
答案:2 悬赏:0
解决时间 2021-02-16 09:08
- 提问者网友:护她一生,唯爱
- 2021-02-16 02:54
C++计算文件的行数,计‘/n’的个数在不计空白行的情况下无法得出正确的行数(万一不小心在文件中打了回车,这种情况也要考虑的),求完整代码,谢谢
最佳答案
- 二级知识专家网友:請叫我丶偏執狂
- 2021-02-16 03:38
#include
#include
#include
using namespace std;
int main(void)
{
ifstream file("test.txt");
string str;
int count = 0;
while (file) {
getline(file, str);//从文件中读取一行
remove(str.begin(), str.end(), ' ');//这个算法函数在algorithm头文件中,删除一行中的空格
remove(str.begin(), str.end(), '\t');//删除一行中的制表符,因为制表符和空格都是空的
if (str.length() > 0) {//如果删除制表符和空格之后的一行数据还有其他字符就算有效行
count ++;
}
}
cout<
return 0;
}
你地明白?
#include
#include
using namespace std;
int main(void)
{
ifstream file("test.txt");
string str;
int count = 0;
while (file) {
getline(file, str);//从文件中读取一行
remove(str.begin(), str.end(), ' ');//这个算法函数在algorithm头文件中,删除一行中的空格
remove(str.begin(), str.end(), '\t');//删除一行中的制表符,因为制表符和空格都是空的
if (str.length() > 0) {//如果删除制表符和空格之后的一行数据还有其他字符就算有效行
count ++;
}
}
cout<
}
你地明白?
全部回答
- 1楼网友:如果这是命
- 2021-02-16 04:21
判断是不是空行啊,假如是空行就不计数;
假如读到的不是空格也不是制表符,flag = 1;
假如读到的是回车,而且flag == 1,则count++,flag = 0;否则直接flag=0。
目的是为了读取足够长的行,可以采用下面的读取方式:
ifstream infile("a.txt");//此处默认的文件打开方式为“以输出的方式打开”
char str[n];//n是定义的常数,目的是为了读取足够长的行
int n=0;//用来表示说读/写文本的行数
while(!infile.eof())
{
infile.getline(str, sizeof(str));//此处默认的终止标识符为‘\n’
n++;
}
cout<
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯