Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
我想在声明全局数组之前计算数据文件的行数。我知道在终端中是否执行
我得到
如何获得编号。 NT中file.d中的行数?
编辑...
如Matteo Italia所指出的,一种更有效的方法(如果您只想计数而又不想使用任何数据)是使用istream :: ignore。
两种方法都将在名为“ file.d”的文件中输出行数。您可以将其输出与“ wc -l”的输出进行比较。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
我想在声明全局数组之前计算数据文件的行数。我知道在终端中是否执行
wc -l filename
,我得到了行数。如何使用该命令(wc -l filename)
并将其结果存储到c ++程序内的int类型变量中?当我使用以下代码时:int NT=system(" wc -l file.d");
我得到
NT=0.
如何获得编号。 NT中file.d中的行数?
最佳答案
获取文件中行数的一种方法是使用getline:
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream in("file.d");
int lines = 0;
string s;
while (getline(in, s))
{
++lines;
}
cout << lines << endl;
return 0;
}
编辑...
如Matteo Italia所指出的,一种更有效的方法(如果您只想计数而又不想使用任何数据)是使用istream :: ignore。
#include <fstream>
#include <iostream>
#include <limits>
using namespace std;
int main()
{
fstream in("in.txt");
int lines = 0;
char endline_char = '\n';
while (in.ignore(numeric_limits<streamsize>::max(), in.widen(endline_char)))
{
++lines;
}
cout << lines << endl;
return 0;
}
两种方法都将在名为“ file.d”的文件中输出行数。您可以将其输出与“ wc -l”的输出进行比较。
关于c++ - 在C++程序中执行行计数bash命令(wc -l),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39518689/
10-14 03:20