C++ 求助4
本帖最后由 隐藏英雄 于 2022-12-26 21:48 编辑下面这第一段代码是正常运行的代码 while (getline(MyFile, TextIp))
{
if (TextIp.find(str) != string::npos)
size_t flag = 0;
//string IpName = { 0 };
//char ip1 = { 0 };
const char* p = TextIp.data();
for (size_t i = strlen(p) - 1; i > 0; i--)
{
if (p == * strStop)
{
flag = i + 2;
break; //退出循环
}
}
for (size_t i = flag, j = 0; i <= strlen(p) - 1; i++, j++)
{
StrName = p;
}
MyFile.close();
}
}
MyFile.close();
下面这段是我需要做改变的代码
while (getline(MyFile, TextIp))
{
if (TextIp.find(str) != string::npos)
{
size_t flag = 0;
//string IpName = { 0 };
//char ip1 = { 0 };
const char* p = TextIp.data();
for (size_t i = strlen(p) - 1; i > 0; i--)
{
if (p == * strStop)
{
flag = i + 2;
break;
}
}
if (str == "默认网关")
{
for (size_t i = flag, j = 0; i <= strlen(p) - 1; i++, j++)
{
StrName = p;
}
if (str == "平均")
{
for (size_t i = flag, j = 0; i <= strlen(p) - 3; i++, j++)
{
StrName = p;
}
}
MyFile.close();
}
}
MyFile.close();
我想实现 通过str这个变量在此时的数据不同,进行不同的计算,但是它走到判断if (str == "默认网关") 时,此时str也确实是 默认网关。正常思路应该是开始if里面的for循环。但是它却直接过了,不会进行for循环 https://blog.csdn.net/qq_44631587/article/details/125919776 C++中的string类对象。需要注意,"=="不能用于两个char类型字符串的比较,对于char类型字符串来说,"=="比较的是两个字符串的起始地址。 zhongyb 发表于 2022-12-26 21:23
C++中的string类对象。需要注意,"=="不能用于两个char类型字符串的比较,对于char类型字符串来说,"=="比 ...
谢谢,那我这里要通过 变量中的字符串和 我指定的字符串进行比较,来决定使用哪一个for来计算的话 要怎么才能实现呢 zhongyb 发表于 2022-12-26 21:42
https://blog.csdn.net/qq_44631587/article/details/125919776
非常感谢提点
我使用了这种方法以后完整实现想要的功能
while (getline(MyFile, TextIp))
if (TextIp.find(str) != string::npos)
{
size_t flag = 0;
//string IpName = { 0 };
//char ip1 = { 0 };
const char* p = TextIp.data();
for (size_t i = strlen(p) - 1; i > 0; i--)i
{
if (p == * strStop)
{
flag = i + 2;
break;
}
}
const char* s1 = str;
const char* s2 = "默认网关";
const char* s3 = "平均";
int com1 = strcmp(s1, s2);
int com2 = strcmp(s1, s3);
if (com1 == 0)
{
for (size_t i = flag, j = 0; i <= strlen(p) - 1; i++, j++)
{
StrName = p;
}
}
if (com2 == 0)
{
for (size_t i = flag, j = 0; i <= strlen(p) - 3; i++, j++)
{
StrName = p;
}
}
MyFile.close();
}
}
MyFile.close();
}
页:
[1]