我编写了一个程序,将QStringList中的随机引用输出到控制台窗口,程序运行,但我无法弄清楚为什么窗口中没有任何内容。请帮忙 这是代码:
#ifndef RANDOMADVICE_H
#define RANDOMADVICE_H
#include <QString>
#include <QStringList>
class randomAdvice
{
public:
randomAdvice();
QString returnAdvice();
private:
QStringList randomList;
QString output;
};
#endif // RANDOMADVICE_H
这是cpp文件randomadvice.cpp
#include "randomadvice.h"
#include "cstdlib"
#include "ctime"
#include <QString>
randomAdvice::randomAdvice()
{
randomList = QStringList()
<< "In order to succeed, your desire for success should be greater than your fear of failure. - Bill Cosby"
<< "Always be yourself, express yourself, have faith in yourself, do not go out and look for a successful personality and duplicate it. - Bruce Lee"
<< "A successful man is one who can lay a firm foundation with the bricks others have thrown at him. - David Brinkley"
<< "Strive not to be a success, but rather to be of value. - Albert Einstein"
<< "To succeed in life you need 2 things: Ignorance and confidence. - Mark Twain"
<< "Success is a lousy teacher. It seduces smart people into thinking they can't lose. - Bill Gates"
<< "Remembering that you are going to die is the best way I know to avoid the trap of thinking that you have something to lose. You are already naked. There is no reason not to follow your heart. - Steve Jobs";
}
QString randomAdvice::returnAdvice()
{
srand(time(NULL));
output = randomList.at(rand() % randomList.size());
return output;
}
和主文件:
#include "randomadvice.h"
#include <QtCore/QCoreApplication>
#include <QTextStream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTextStream out(stdout);
randomAdvice ra;
QString adviceString = ra.returnAdvice();
out << adviceString;
return a.exec();
}
答案 0 :(得分:1)
QTextStream
缓冲输出,直到刷新或写入换行符。
您可以在out.flush()
之后添加out << adviceString
,也可以将out << adviceString
更改为out << adviceString << endl
。
答案 1 :(得分:0)
尝试QTextStream out(stdout, QIODevice::WriteOnly);