Qt错误iso c ++禁止比较指针和整数-fpermissive

时间:2018-08-18 08:07:09

标签: c++ qt casting comparison getline

我使用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) 功能?

1 个答案:

答案 0 :(得分:4)

您正在将string literalchar

  if (ans == "y") 

应该是

  if (ans == 'y') 

回答第二个问题。 getline()用于从输入流而不是单个char读取字符串或行。 语法如下。

istream& getline (istream& is, string& str);