C++ 阅读文本很长的文件

C++ Reading file with really long text

本文关键字:文件 文本 C++      更新时间:2023-10-16

我有以下C++代码应该从这个文件中读取。我想从文本文件中捕获 IP 和端口并将其写入文件。我已经完成了以下代码:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
  string line;
  ifstream myfile ("myfile.txt");
  if (myfile.is_open())
  {
    while ( getline (myfile,line) )
    {
        cout<<line;
        if(line.find("IP")){
            cout<<line;
        }
        if(line.find("PORT")){
            cout<<line;
        }
    }
    myfile.close();
  }
  else cout << "Unable to open file"; 
  return 0;
}

但我没有得到正确的输出。我在这里做错了什么?我想获取这些 IP 和端口值并编写另一个包含以下内容的文本文件。

{
"ip":"127.0.0.1",
"port":"9999"
}

我应该怎么做才能实现这一目标?

它应该是:

std::size_t loc = line.find("IP");
if(loc != std::string::npos) {
  cout << line.substr(loc);
}

也对端口执行类似操作。

std::string::find 返回找到字符串

的第一个字符偏移量的位置,如果未找到字符串,则返回std::string::npos