如何从终端读取.txt文件,然后从文件中提取内容?

时间:2016-02-19 04:45:00

标签: c++ linux file-io

我想使用 C ++ 来提取要解析的.txt文件(将从终端指向)的内容,但我不知道如何这样做呢?我知道我们做了

./a.out < file.txt

然后将file.txt放入标准输入中,但后来我感到困惑,因为我不确定如何访问文件内容来解析它等等。

2 个答案:

答案 0 :(得分:0)

您可以将定向输入视为cin的输入。假如我有以下文件input.txt

Hello
World

然后运行像

这样的可执行文件

./a < input.txt

我可以做类似

的事情
std::string s1;
std::string s2;
std::cin >> s1;
std::cin >> s2;
std::cout << s1 << s2 << "\n";

然后打印Hello Word。 getline with cin也是一个选择。可以把它想象成一个非常快的用户在每个输入语句中立即输入一行。

答案 1 :(得分:0)

您可以在std::ifstream的参数上获取文件名作为输入,并打开该文件的int main(int argc, char* argv[]) {  std::ifstream file(std::string(argv[1])); if (file.is_open()) { //read input } }

./a filename

您可以致电file。要阅读std::cin,您可以像Select @dist:=((ACOS(SIN(1.3903496 * PI() / 180) * SIN(latitude * PI() / 180) + COS(1.3903496 * PI() / 180) * COS(latitude * PI() / 180) * COS((103.8846613- longitude) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance from tabl_name 那样阅读(请参阅NickLamp的答案)。