簡體   English   中英

Qt錯誤iso c ++禁止比較指針和整數-fpermissive

[英]Qt error iso c++ forbids comparison between pointer and integer -fpermissive

我使用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)函數?

您正在將string literalchar比較

  if (ans == "y") 

應該

  if (ans == 'y') 

回答第二個問題。 getline()用於從輸入流而非單個char讀取字符串或行。 語法如下。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM