吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1146|回复: 4
收起左侧

[已解决] C++ 求助4

[复制链接]
隐藏英雄 发表于 2022-12-26 20:21
本帖最后由 隐藏英雄 于 2022-12-26 21:48 编辑

下面这第一段代码是正常运行的代码
[C++] 纯文本查看 复制代码
        while (getline(MyFile, TextIp)) 
        {
                if (TextIp.find(str) != string::npos) 
                        size_t flag = 0;
                        //string IpName[60] = { 0 };
                        //char ip1[120] = { 0 };
                        const char* p = TextIp.data();
                        for (size_t i = strlen(p) - 1; i > 0; i--)
                        {
                                if (p[i] == * strStop)
                                {
                                        flag = i + 2;
                                        break;                              //退出循环
                                }
                        }
                        for (size_t i = flag, j = 0; i <= strlen(p) - 1; i++, j++)
                        {
                                StrName[j] = p[i];
                        }
                        MyFile.close();
                }
        }
        MyFile.close();


下面这段是我需要做改变的代码

[C++] 纯文本查看 复制代码
while (getline(MyFile, TextIp))
        {
                if (TextIp.find(str) != string::npos) 
                {
                        size_t flag = 0;
                        //string IpName[60] = { 0 };
                        //char ip1[120] = { 0 };
                        const char* p = TextIp.data(); 

                        for (size_t i = strlen(p) - 1; i > 0; i--)
                        {
                                if (p[i] == * strStop)
                                {
                                        flag = i + 2; 
                                        break; 

                                }
                        }
                        if (str == "默认网关")
                        {
                                for (size_t i = flag, j = 0; i <= strlen(p) - 1; i++, j++)
                                {
                                        StrName[j] = p[i];
                        }
                        if (str == "平均")
                        {
                                for (size_t i = flag, j = 0; i <= strlen(p) - 3; i++, j++)
                                {
                                        StrName[j] = p[i];
                                }
                        }
                        MyFile.close();
                }
        }
        MyFile.close();


我想实现 通过str这个变量在此时的数据不同,进行不同的计算,但是它走到判断if (str == "默认网关") 时,此时str也确实是 默认网关。正常思路应该是开始if里面的for循环。但是它却直接过了,不会进行for循环

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zhongyb 发表于 2022-12-26 21:42
https://blog.csdn.net/qq_44631587/article/details/125919776

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
隐藏英雄 + 1 + 1 热心回复!

查看全部评分

zhongyb 发表于 2022-12-26 21:23
C++中的string类对象。需要注意,"=="不能用于两个char类型字符串的比较,对于char类型字符串来说,"=="比较的是两个字符串的起始地址。
 楼主| 隐藏英雄 发表于 2022-12-26 21:30
zhongyb 发表于 2022-12-26 21:23
C++中的string类对象。需要注意,"=="不能用于两个char类型字符串的比较,对于char类型字符串来说,"=="比 ...

谢谢,那我这里要通过 变量中的字符串  和   我指定的字符串进行比较,来决定使用哪一个for来计算的话 要怎么才能实现呢
 楼主| 隐藏英雄 发表于 2022-12-26 21:46
zhongyb 发表于 2022-12-26 21:42
https://blog.csdn.net/qq_44631587/article/details/125919776

非常感谢提点
我使用了这种方法以后完整实现想要的功能
[C++] 纯文本查看 复制代码
	while (getline(MyFile, TextIp)) 
		if (TextIp.find(str) != string::npos)
		{
			size_t flag = 0;
			//string IpName[60] = { 0 };
			//char ip1[120] = { 0 };
			const char* p = TextIp.data(); 
			for (size_t i = strlen(p) - 1; i > 0; i--)i
			{
				if (p[i] == * 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[j] = p[i];
				}
			}
			if (com2 == 0)
			{
				for (size_t i = flag, j = 0; i <= strlen(p) - 3; i++, j++)
				{
					StrName[j] = p[i];
				}
			}
			MyFile.close();
		}
	}
	MyFile.close();
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 02:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表