代码没有实现想要的功能(附代码)

一世豁然 2015-11-05 10:47:53
我参考网络写了一段获取区域全部IP地址并写入到txt文件的程序,这是用getIP()函数来实现的。
又写了一段从txt获取IP地址并显示在终端的代码,这是用showIP来显示的。
其中核心代码如下:
void regionfind::getIP()
{
QList<QHostAddress> addresslist = QNetworkInterface::allAddresses();
QFile file("/home/dsp/Example/IP.txt");
foreach (QHostAddress address, addresslist)
{
if(address.protocol() == QAbstractSocket::IPv4Protocol)
{
if(address.toString().contains("127.0."))
{
continue;
}

if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
QMessageBox::information ( this,tr( "错误"), tr("不能打开文件!"));
}
QTextStream in(&file);
in << address.toString() << "\n";
}
file.flush();
}
file.close();
}


void regionfind::showIP()
{
QFile file("/home/dsp/Example/IP.txt");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QMessageBox::information ( this,tr( "错误"), tr("不能打开文件!"));
}
QTextStream out(&file);
QString line;
do
{
line = out.readLine();
qDebug() << line;
}
while(!line.isNull());

file.close();
}


运行没问题,但总是等不到想要的功能,IP.txt不管怎么依旧一片空白,没有任何IP地址写入。
请问哪里除了问题?
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
在飞的特拉斯 2015-11-06
  • 打赏
  • 举报
回复
引用 2 楼 Explorer_day 的回复:
[quote=引用 1 楼 mqdsg 的回复:] 你的file路径对不对呢? 我这边使用你的代码是可以的(大致是一样的)

#include <QCoreApplication>
#include <QList>
#include <QFile>
#include <QtNetwork/QNetworkInterface>
#include <QtNetwork/QHostAddress>
#include <QDebug>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QList<QHostAddress> addresslist = QNetworkInterface::allAddresses();
    QFile file("./IP.txt");
    if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        qDebug() << "error~";
        return 0;
    }
    foreach (QHostAddress address, addresslist)
    {
        if(address.protocol() == QAbstractSocket::IPv4Protocol)
        {
            if(address.toString().contains("127.0."))
            {
                continue;
            }
            QTextStream in(&file);
            in << address.toString() << "\n";
            qDebug() << address;
        }
        file.flush();
    }
    file.close();

    return a.exec();
}

你再看看呢
解决了,感谢你的回答,忘记了在main()函数声明的低级错误。[/quote] 好吧~
一世豁然 2015-11-06
  • 打赏
  • 举报
回复
引用 1 楼 mqdsg 的回复:
你的file路径对不对呢? 我这边使用你的代码是可以的(大致是一样的)

#include <QCoreApplication>
#include <QList>
#include <QFile>
#include <QtNetwork/QNetworkInterface>
#include <QtNetwork/QHostAddress>
#include <QDebug>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QList<QHostAddress> addresslist = QNetworkInterface::allAddresses();
    QFile file("./IP.txt");
    if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        qDebug() << "error~";
        return 0;
    }
    foreach (QHostAddress address, addresslist)
    {
        if(address.protocol() == QAbstractSocket::IPv4Protocol)
        {
            if(address.toString().contains("127.0."))
            {
                continue;
            }
            QTextStream in(&file);
            in << address.toString() << "\n";
            qDebug() << address;
        }
        file.flush();
    }
    file.close();

    return a.exec();
}

你再看看呢
解决了,感谢你的回答,忘记了在main()函数声明的低级错误。
在飞的特拉斯 2015-11-06
  • 打赏
  • 举报
回复
你的file路径对不对呢? 我这边使用你的代码是可以的(大致是一样的)

#include <QCoreApplication>
#include <QList>
#include <QFile>
#include <QtNetwork/QNetworkInterface>
#include <QtNetwork/QHostAddress>
#include <QDebug>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QList<QHostAddress> addresslist = QNetworkInterface::allAddresses();
    QFile file("./IP.txt");
    if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        qDebug() << "error~";
        return 0;
    }
    foreach (QHostAddress address, addresslist)
    {
        if(address.protocol() == QAbstractSocket::IPv4Protocol)
        {
            if(address.toString().contains("127.0."))
            {
                continue;
            }
            QTextStream in(&file);
            in << address.toString() << "\n";
            qDebug() << address;
        }
        file.flush();
    }
    file.close();

    return a.exec();
}

你再看看呢

16,224

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧