我有以下应该从此file中读取的C ++代码。我想从文本文件中捕获IP和PORT并将其写入文件。我已经完成以下代码:
#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和PORT值,并编写另一个具有以下内容的文本文件。
{
"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
。