Van egy kis gondom c++-ban?
Szeretnék egy txt-ből adatokat beolvasni a programba és érdekes módon az 5-ös számot nem akarja kiírni.
Mi a hiba a kódban?
#include <iostream>//include: becsatoljuk a funkciojat amire szukseg van
#include <fstream>//'file kezeles aktivalas
using namespace std;
int main()
{
//beolvasas lepesei: 1. zold resznel includolni
string fajlnev="forras.txt";
ifstream fajl(fajlnev.c_str());// MAGOLNI!!! ebbol tudja, hogy fajlrol van szo
int darabszam=0;
fajl>>darabszam;//a fajlbol a darabszamba betaroltuk a szamokat
int szamok[darabszam];//tomb letrehozasa
int i=0;
for(i=0;i<darabszam;i++)//beolvasas a forrasbol
{
fajl>>szamok[i];// a fajlokbol a tomb aktualis helyere beolvassuk
}
for(i=0;i<darabszam;i++)//menjen vegig
{
cout<<szamok[i]<<",";//kiiras
}
A txt tartalma:
5
3
4
56
6
1
Köszi a segítséget!
1. A kommentek nagyon kemények, ezeket lehet ki kéne törölni, mert a nagyrésze totális baromság.
2. Miért is kéne kiírnia a programnak az ötöst, mikor:
a, nem is íratod ki
b, nem is kell kiírni, hiszen az azt jelzi, hogy hány darab szám lesz
3. Én mondjuk azt sem értem, hogy ez a kód hogy fordulhat le.
fajl>>darabszam;
int szamok[darabszam];
Ezt meg a továbbiakban felejtsd el, ilyen nincs C++-ban.
Ez nem ervenyes C++ kod!
Ilyen nincs a C++-ban:
int szamok[darabszam];
Ehelyett lehet:
int *szamok = new int[darabszam];
Vagy esetleg:
vector<int> szamok;
---
Az 5-os szamot azert nem irja ki, mert nem iratod ki vele sehol.
Pl kiirathatod vele igy:
cout << darabszam << " szam van:\n"
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!