我使用Qt 4.5.1,并且在此控制台应用程序中,当我想在 if语句 行中接收用户输入时,会收到此错误:
iso c ++禁止比较指针和整数-fpermissive
这是我的代码:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
char ans;
QDir mDir;
QString mPath("A:/inetpub/wwwroot/xampp");
if (mDir.exists(mPath))
qDebug() << mDir.exists();
else {
qDebug() << "Do you wanna create the path? Y / N";
// getline(cin, ans);
cin >> ans;
if (ans == "y") {
qDebug() << "Now I create one";
mDir.mkpath(mPath);
}
}
return a.exec();
}
我还有另一个琐碎的分开的问题;为什么我不能在Qt中以这种方式使用 getline(cin,string)
功能?
答案 0 :(得分:4)
您正在将string literal
与char
if (ans == "y")
应该是
if (ans == 'y')
回答第二个问题。
getline()
用于从输入流而不是单个char
读取字符串或行。
语法如下。
istream& getline (istream& is, string& str);