警告:未使用的变量“arrPixel”[-Wunused-variable]

warning: unused variable ‘arrPixel’ [-Wunused-variable]

本文关键字:-Wunused-variable arrPixel 未使用 变量 警告      更新时间:2023-10-16

Main.cpp

#include <iostream>
#include <fstream>
#include "steganography.h"  // call steganography class
const int arrSize = 30000;//array for contains pixels
using namespace std;
int main()
{
    char FileName[20] = "new.txt";
    char NewFile[20] = "new.ppm";
    char arrPixel[arrSize] = {};
    int count = 0;
    int option;
    Steganography A;//create the reference of steganopragpy class
    cout<<"Choose Enocde/Decode[1/2]"; // take option from user
    cin>>option;
    switch(option)
    {
    case 1:
    cout << "Enter PPM File Name" << endl;
    cin>>FileName;
    cout << "Enter Output File Name"<< endl;
    cin>>NewFile;
    A.readImage(FileName, arrPixel);//call readImage method
    cout << "Encoded Successfully completed:" << endl;
    A.printImage( NewFile, arrPixel);//write ppm
    break;
    case 2:
    cout << "Enter Input File Name" << endl;
    cin>>FileName;
    cout << "Enter Output PPM File Name"<< endl;
    cin>>NewFile;
    A.readCipherText( NewFile, arrPixel);//call read file method
    cout << "Decoded Successfully completed:" << endl;
    A.printCipherText(FileName, arrPixel);//write ppm
    break;
        default:
            cout<<"wrong choice";
    }
  //  cout << NewFile << endl;
    for(int ct = 0; ct > arrSize; ct++)
    {
        cout << arrPixel[ct];
    }

    return 0;
}

隐写术.cpp

#include <iostream>
#include <fstream>
#include <string>
#include "steganography.h" // call steganography class
const int arrSize = 30000;//array for contains pixels
using namespace std;
Steganography::Steganography()//call steganography constructor
{
    char arrPixel[arrSize] = {};
}

void Steganography::readImage(char* FileName, char* arrPixel)//read image
{
    ifstream infile (FileName);//open file
    if(infile.is_open())
    {
        for(int count = 0; count < arrSize; count++)
        {
            infile >> noskipws >> arrPixel[count];
        }
    }
    else
    {
        cout << "Error opening new file." << endl;
        //abort();
    }
    infile.close();
    }
void Steganography::readCipherText(char* FileName, char* arrPixel)//read text file contains ppm info
{
    ifstream infile (FileName);
    if(infile.is_open())
    {
        for(int count = 0; count < arrSize; count++)
        {
            infile >> noskipws >> arrPixel[count];
        }
    }
    else
    {
        cout << "Error opening new file." << endl;
        //abort();
    }
    infile.close();
    }
void Steganography::printImage(char* NewFile, char* arrPixel)//write image
{
  ofstream outfile (NewFile);
    if(outfile.is_open())
    {  
       int count = arrSize;
        for(int i = 0; i < (count - 1); i++)
        {
            outfile << arrPixel[i];
        }
    }
    else
    {
        cout << "Error opening new file." << endl;
      //  abort();
}
    outfile.close();
}
void Steganography::printCipherText(char* NewFile, char* arrPixel)//write ppm file
{
  ofstream outfile (NewFile);
    if(outfile.is_open())
    {  
       int count = arrSize;
        for(int i = 0; i < (count - 1); i++)
        {
            outfile << arrPixel[i];
        }
    }
    else
    {
        cout << "Error opening new file." << endl;
      //  abort();
}
    outfile.close();
}

隐写术。

#ifndef STEGANOGRAPHY_H
#define STEGANOGRAPHY_H
#include <string>
#include <vector>
class Steganography {
 private:
  // Image header
  std::string image_type;
  int width, height;
  int max_color_depth;
  // Image data
  std::vector<int> color_data;
  // Hidden data
  std::string ciphertext;      
  int getNthBit(char cipher_char, int n);
 public:
  Steganography(void);     //Constructor    
  void readImage(char*,char*);

  void printImage(char*,char*);

  void readCipherText(char*,char*);

  void printCipherText(char*,char*);

  void cleanImage();

  void encipher();

  void decipher();
};
#endif

编译时,我收到以下警告:

steganography.cpp: In constructor ‘Steganography::Steganography()’:
steganography.cpp:11:10: warning: unused variable ‘arrPixel’ [-Wunused-variable]

有人可以帮我解决问题吗?另外,我必须写这行 const int arrSize = 30000;在 Main.cpp 和隐写术中.cpp为了避免出错,有没有办法只在隐写术上写它.cpp而不会出错?

在这里:

Steganography::Steganography()//call steganography constructor
{
    char arrPixel[arrSize] = {};
}

你声明了一个名为 arrPixel 的局部变量,并且不使用它。您可以删除该行。

请注意,您有警告,而不是错误。