将ORs放入if语句导致ISO C ++禁止指针和整数之间的比较(f-permissive)

问题描述 投票:0回答:1

我不明白为什么它报告这个错误。

错误是ISO C++ forbids comparison between pointer and integer (f-permissive)

#include <iostream>
#include <iomanip>
#include <cmath>
#include <cctype>
using namespace std;
int main()
{
  int letters; //Total number of letters                                                                                                                                           
  int digits; //Total number of digits                                                                                                                                             
  int sentencecount; //Number of sentences                                                                                                                                         
  float averageletters; //Average number of letters per sentence                                                                                                                   
  int linecount=0; //Count of lines                                                                                                                                                
  char current; //Current character                                                                                                                                                
  sentencecount = letters/linecount;                                                         
  cin.get(current);
  while (cin) //while receiving input                                                                                                                                              
    {
      digits = 0;
      letters = 0;
      linecount++;
      if (current == "." || current == "!" || current == "?")   //checks each line                                                                                                 
        {
          if (isalpha(current))//counts alphabet characters                                                                                                                        
            letters++;
          if (isdigit(current))//counts digits                                                                                                                                     
            digits++;
          cin.get (current);
        }
      sentencecount = letters/linecount;
      cout << "avg number of letters" << sentencecount << "digits" <<  digits << endl;
      cin.get (current);
    }
  return 0;
}
c++
1个回答
0
投票

在这一行:

if (current == "." || current == "!" || current == "?")

您正在使用string literals或者正确地说出character arrays。这转换为指向该数组的指针。我认为你打算使用单引号将它标记为'的单个字符。这样你比较它是有价值的。

© www.soinside.com 2019 - 2024. All rights reserved.