• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
            #include <iostream>
            #include 
            <QFile>
            #include 
            <QImage>
            #include 
            <QMap>
            #include 
            <QColor>

            class C {
            public:
                C(quint32 value 
            = 0) :
                    value(value) {
                }

                
            // Override operator << and >>.
                friend QDataStream &operator<<(QDataStream &out, const C &obj);
                friend QDataStream 
            &operator>>(QDataStream &in, C &obj);

                quint32 getValue() 
            const {
                    
            return value;
                }

            private:
                quint32 value;
            };

            QDataStream 
            &operator<<(QDataStream &out, const C &obj) {
                out 
            << obj.value;

                
            return out;
            }

            QDataStream 
            &operator>>(QDataStream &in, C &obj) {
                in 
            >> obj.value;

                
            return in;
            }

            /**
             * Copy a file
             
            */
            bool copy(
            const QString &source, const QString &dest) {
                QFile sourceFile(source);
                
            if (!sourceFile.open(QIODevice::ReadOnly)) {
            #ifdef DEBUG
                    std::cerr 
            << sourceFile.errorString().toStdString() << std::endl;
            #endif
                    
            return false;
                }

                QFile destFile(dest);
                
            if (!destFile.open(QIODevice::WriteOnly)) {
            #ifdef DEBUG
                    std::cerr 
            << destFile.errorString().toStdString() << std::endl;
            #endif
                    
            return false;
                }

                destFile.write(sourceFile.readAll());

                
            return sourceFile.error() == QFile::NoError && destFile.error()
                        
            == QFile::NoError;
            }

            /**
             * Instantiate a QFile
             * Open the file
             * Access the file through q QDataStream object.
             * 
             * Must ensure that we read all the types in exactly the same order
             * as we wrote them.
             * 
             * If the DataStream is being purely used to read and write basic C++ data types,
             * we dont' even need to call setVersion().
             * 
             * If we want to read or write a file in one go. WE can avoid using QDataStream altogether
             * and instead using QIODevice's write() and readAll() function.
             * For example copy a file.
             
            */
            int main(int argc, char *argv[]) {
                
            //********Write data in to the file.********
                QImage image("Adium.png");
                QMap
            <QString, QColor> map;
                map.insert(
            "red", Qt::red);
                map.insert(
            "green", Qt::green);
                C c(
            23);
                QFile file(
            "data.dat");
                
            if (!file.open(QIODevice::WriteOnly)) {
                    std::cerr 
            << "Cannot open the file: Write." << file.errorString().toStdString() << std::endl;

                    
            return 1;
                }

                QDataStream out(
            &file);
                out.setVersion(QDataStream::Qt_4_3);
                out 
            << quint32(7456<< map << c;
                file.close();

                
            //********Read data from the file.********
                quint32 value;
                QMap
            <QString, QColor> map2;
                C c2;
                
            if (!file.open(QIODevice::ReadOnly)) {
                    std::cerr 
            << "Cannot open the file: Read." << file.errorString().toStdString() << std::endl;

                    
            return 2;
                }
                QDataStream in(
            &file);
                in.setVersion(QDataStream::Qt_4_3);
                in 
            >> value >> map2 >> c2;
                file.close();

                std::cout 
            << value << std::endl << c2.getValue();

                copy(QString(
            "Adium.png"), QString("Copy_Adium.png"));
                
                
            return 0;
            }

            posted on 2008-03-19 00:11 逛奔的蝸牛 閱讀(7357) 評論(0)  編輯 收藏 引用 所屬分類: Qt
            国产精品日韩欧美久久综合| 久久午夜无码鲁丝片秋霞| 久久夜色精品国产网站| 久久99国产乱子伦精品免费| 国产精品久久久久…| 久久国产三级无码一区二区| 7777精品久久久大香线蕉| 国内精品久久国产大陆| 无码8090精品久久一区| 久久国产免费观看精品| 中文精品99久久国产 | 2020最新久久久视精品爱| 亚洲欧洲精品成人久久曰影片 | 久久久久久久综合狠狠综合| 久久久久久亚洲AV无码专区| 久久久不卡国产精品一区二区| 人妻少妇久久中文字幕| 无码8090精品久久一区| 国产毛片久久久久久国产毛片| 国产69精品久久久久9999APGF| 久久精品国产黑森林| 国产一级做a爰片久久毛片| 伊人久久大香线蕉av不卡| 久久亚洲中文字幕精品一区四| 久久精品国产精品青草app| 久久久久久久久久久久中文字幕| 久久久免费观成人影院| 精品一久久香蕉国产线看播放| 99久久精品日本一区二区免费| 亚洲国产另类久久久精品黑人| 久久精品极品盛宴观看| 人人狠狠综合久久亚洲| 日日狠狠久久偷偷色综合免费 | 色婷婷久久综合中文久久蜜桃av | 久久精品亚洲欧美日韩久久| 99麻豆久久久国产精品免费| 久久99国内精品自在现线| 久久99国产综合精品| 日本福利片国产午夜久久| 93精91精品国产综合久久香蕉| 久久婷婷久久一区二区三区|