2013-11-15, 12:16
  #1
Medlem
Har ett litet problem, jag gjorde en kod. Som fungerade valde sen att gra om den med classer och header. Sedan dess fungerar inte koden lngre, felkod r "expected primary-expression before '.' token".

Eftersom att koden fungerade bra innan jag valda att dela upp med klasser och flera olika source files antar jag att problemet ligger ngonstans i classerna och inte sjlva krypterings funktionen.

Nedan r koden:
main.cpp
Kod:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <cmath>
#include "KRYPTERING.h"
using namespace std;

int main ()
{
    string filename;
    int menyval1;
    
    
    cout << "Encryption program have started.\n";
    
    while (menyval1 != 3)
    {
    cout << "Please select what you would like to do.\n\nPress 1 for encryption.\nPress 2 for decryption.\nPress 3 to end program.\nLock in your choice with enter.\n";
    cin >> menyval1;
    
    if (menyval1 == 1)
    {
        cout << "Enter filename: ";
        cin >> filename;
        
        KRYPTERING encrypt;
        
        KRYPTERING.setfilename1(filename);//hr ska problemet vara
        KRYPTERING.setfilename2(filename);//hr ska problemet vara
    }
        else if (menyval1 == 2)
        {
        //ska gras senare    
        }
        else
        {
            cout << menyval1 << " is not a valid option.\n\n";
        }
    }
    return 0;
}

Detta r header(KRYPTERING.h):
Kod:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <cmath>

using namespace std;

#ifndef KRYPTERING_H
#define KRYPTERING_H

class KRYPTERING 
{
    public:
        KRYPTERING();
        
        KRYPTERING(string);
                
        void setfilename1(string);
        
        void setfilename2(string);
        
        int encrypt();
                
    private:
        string newfilename1;
        string newfilename2;
};

#endif

kryptering.cpp
Kod:
#include "KRYPTERING.h"

KRYPTERING::KRYPTERING() 
{
          
}

void KRYPTERING::setfilename1(string filename)
{
    filename+= ".txt";
    newfilename1 = filename;
}

void KRYPTERING::setfilename2(string filename)
{
    filename+= "_crypt.txt";
    newfilename2 = filename;
}

int KRYPTERING::encrypt() const
{   
    char file [2][100];
    string filename[2];
    string text;
    string textarray[1024];
    
    filename[0] = newfilename1
    filename[1] = newfilename2
    
    for (int n=0; n < 2; n++)
    {
        for (int i=0; i < 100; i++)
        {
            file [n][i]= filename[n][i];
        }
    }
        
    ifstream myfile;
    myfile.open(file[0]);
    for (int n=0; getline (myfile,text); n++)
    {
        textarray[n] = text;
    }
    myfile.close();
    
    for (int n=0; n < 1024; n++)
    {
        for (int i=0; i < textarray[n].size(); i++)
        {
            charline [n][i] = textarray[n][i];
        }
    }
       
    ofstream myfile_crypt;
    myfile_crypt.open (file[1]);
    for (int n=0; textarray[n].size() > 0; n++)
    {
        for (int i=0; i < textarray[n].size(); i++)
        {
            myfile_crypt << 100+(int)charline [n][i];
        }
        myfile_crypt << "\n";
    }
    myfile_crypt.close();
    cout << "\nYour file("<< filename[0] << ") is now encrypted.\nThe encrypted version is named: " << filename[1] << endl << endl;
}

Tack p frhand.
Citera
2013-11-15, 13:12
  #2
Medlem
LeonVances avatar
Ska vara:

encrypt.setfilename1(filename);//hr ska problemet vara
encrypt.setfilename2(filename);//hr ska problemet vara

KRYPTERING r klassen. encrypt r objektet. Med klassen kan du bara skapa nya objekt, du kan inte manipulera dem.
Citera
2013-11-15, 13:33
  #3
Medlem
Citat:
Ursprungligen postat av LeonVance
Ska vara:

encrypt.setfilename1(filename);//hr ska problemet vara
encrypt.setfilename2(filename);//hr ska problemet vara

KRYPTERING r klassen. encrypt r objektet. Med klassen kan du bara skapa nya objekt, du kan inte manipulera dem.
Tack, nu fungerar det bra.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in