#include <fstream>
#include <iostream>
#include <string>
int getNameValue(char *name, char *value)
{
std::ifstream file;
std::string buf, bufFromFile, beginName, endName;
int begin, end;
if (name == NULL || value == NULL) {
std::cout << "name and value is invalid" << std::endl;
exit(1);
}
beginName.append("<");
beginName.append(name);
beginName.append(">");
endName.append("</");
endName.append(name);
endName.append(">");
file.open("MyIp.config");
if (!file.is_open()) {
std::cout << "error in open file ";
exit(1);
}
while (!file.eof()) {
file >> bufFromFile;
buf += bufFromFile;
}
file.close();
std::cout << buf << std::endl;
begin = buf.find(beginName);
end = buf.find(endName);
//std::cout << begin << " " << end << std::endl;
if (begin < 0 || end < 0) {
std::cout << "can't find " << name << " Item" << std::endl;
exit(1);
}
if (begin >= end) {
std::cout << "error in find " << name << " Item" << std::endl;
exit(1);
}
for (int i = 0; i < end - begin - beginName.length(); i++) {
value[i] = buf.at(begin + beginName.length() + i);
}
value[end - begin - beginName.length()] = '/0';
}
int main(int argc, char* argv[])
{
char *name = "IP";
char *value = NULL;
int port;
value = new char[100];
getNameValue(name, value);
}