本帖最后由 隐藏英雄 于 2022-12-26 11:06 编辑
[C++] 纯文本查看 复制代码
#include <fstream>
#include <iostream>
#include <sstream>
using namespace std;
char FindSize();
char TestDiver();
char str[20];
ifstream MyFile("D:\\ping.t");
int main()
{
if (FindSize() == 1)
{
cout << "没有找到TTL" << endl;
}
if (TestDiver() == 1)
{
cout << "没有找到默认网关" << endl;
}
}
char FindSize()
{
system("ping 192.168.1.1 > D:\\ping.t");
string TextReadSize;
char StrPing = 'TTL';
while (getline(MyFile, TextReadSize))
{
if (TextReadSize.find(StrPing) != string::npos)
{
return 0;
}
}
return 1;
}
char TestDiver()
{
system("ipconfig > D:\\ping.t");
string TextReadSize;
strcpy_s(str, "默认网关");
while (getline(MyFile, TextReadSize))
{
if (TextReadSize.find(str) != string::npos)
{
return 0;
}
}
return 1;
}
这一段代码放到MFC里面 是第一次查找可以正常查找,第二次的查找就直接返回1了。
这一段代码放到 控制台运行 2次都没工作。求解、
已解决:是ifstream MyFile("D:\\ping.t"); 这句话不能放到全局变量的位置
因为这句话放在整个代码的前面 会导致文件在第一次使用的时候可以正常打开,但是第二次使用的时候 你如果不关闭它,则它是原来打开的数据,你如果关闭它,则它不会再重新被打开。 |