• <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 逛奔的蝸牛 閱讀(7349) 評論(0)  編輯 收藏 引用 所屬分類: Qt
            精品久久777| 一本久久a久久精品综合夜夜| 午夜精品久久久内射近拍高清| 久久香蕉国产线看观看猫咪?v| 精品一二三区久久aaa片| 国内精品久久久久影院优| 久久免费小视频| 久久中文字幕人妻熟av女| 97久久天天综合色天天综合色hd| 四虎国产永久免费久久| 亚洲国产精品成人AV无码久久综合影院 | 99久久成人国产精品免费| 日韩欧美亚洲综合久久影院Ds | 久久午夜福利无码1000合集| 久久99国产精品久久久| 久久久精品国产| 人妻丰满?V无码久久不卡| 国产精品久久久久久一区二区三区 | 久久这里只有精品视频99| 国产V综合V亚洲欧美久久| 久久SE精品一区二区| 无码精品久久一区二区三区 | 九九久久精品国产| 久久成人影院精品777| 中文字幕久久久久人妻| 国产精品免费久久久久影院| 久久亚洲日韩精品一区二区三区| 婷婷久久综合九色综合绿巨人| 久久www免费人成看国产片| 久久久91精品国产一区二区三区| 亚洲成色www久久网站夜月| 97香蕉久久夜色精品国产 | 99久久777色| 久久综合九色综合97_久久久| 九九久久自然熟的香蕉图片| 久久久久亚洲av无码专区| 少妇久久久久久被弄高潮| 欧美噜噜久久久XXX| 精品免费久久久久久久| 天天综合久久久网| 亚洲天堂久久精品|