Miért nem működik visual studio 2013-ban, illetve, hogy oldjam meg hogy működjön?
ott jelez hibát ahol strcmp-t használok a p-t aláhúzza
if (strcmp(p[i].hossz, "HosszMeghataroz") == 0)
if (strcmp(p[i].mgh, "MghMeghataroz") == 0)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
struct szo
{
char s[21]; //az állományból beolvasott szó
int hossz; //a szó karaktereinek száma
int mgh; //a szóban lévő magánhangzók száma
};
class szavak
{
private:
szo *p; //mutató, a szavak adatait tartalmazó struktúratömb kezdőcímének tárolására
int n; //szavak száma
public:
szavak(char fnev[]);
~szavak();
int Getn();
int HosszMeghataroz();
int MghMeghataroz();
int Leghosszabb();
int Tisztit();
int Megszamol();
void Lista();
void Kiir();
};
szavak::szavak(char fnev[])
{
ifstream be(fnev);
if (!be)
{
cerr << "hiba";
exit(-1);
}
n = 0;
char sor[80];
while (!be.eof())
{
be.getline(sor, 80);
if (!be.eof())n++;
}
be.clear();
be.seekg(0, ios::beg);
p = new szo[n];
if (p == 0)
{
cerr << "hiba2";
exit(-2);
}
for (int i = 0; i < n; i++)
{
be >> p[i].s;
be >> p[i].hossz;
be >> p[i].mgh;
}
be.close();
}
szavak::~szavak()
{
if (p != 0)
delete[]p;
}
int szavak::Getn()
{
return n;
}
int szavak::HosszMeghataroz()
{
int hm = 0;
for (int i = 0; i < n; i++)
{
if (strcmp(p[i].hossz, "HosszMeghataroz") == 0)
{
hm++;
}
}
return hm;
}
int szavak::MghMeghataroz()
{
int mm = 0;
for (int i = 0; i < n; i++)
{
if (strcmp(p[i].mgh, "MghMeghataroz") == 0)
{
mm++;
}
}
return mm;
}
int szavak::Leghosszabb()
{
int l = p[0].hossz;
for (int i = 0; i < n; i++)
{
if (p[i].hossz > l)
{
l = p[i].hossz;
}
}
return 1;
}
void szavak::Kiir()
{
cout << setw(15) << " szó " << setw(20) << " hossz " << setw(10) << "mgh" << endl;
for (int i = 0; i < n; i++)
{
cout << i + 1 << "." << setw(12) << p[i].s << setw(20) << p[i].hossz << setw(10) << p[i].mgh << endl;
}
}
int main()
{
szavak a("davy.txt");
cout << "\nAz adatok:\n";
a.Kiir();
a.Lista();
cout << "\n hossz: " << a.HosszMeghataroz() << endl;
cout << "\n Mgh: " << a.MghMeghataroz() << endl;
a.Kiir();
system("pause");
return 0;
}
strcmp(p[i].hossz, "HosszMeghataroz"
itt gondolom nem a hossza kéne neked, hanem maga a string
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!