Hirdetés

2024. június 3., hétfő

Gyorskeresés

Hozzászólások

(#551) gygabor88 válasza icespeak (#550) üzenetére


gygabor88
tag

A headerben a ReadFromFile egy paramétert vár, a mainben viszont két paraméterrel hívod meg. Vagy egy paraméterrel kellene meghívnod, vagy a headerben és a read.cpp-ben átírni a függvényt. Úgy látom egy vektorba akarsz beolvasni, így az utóbbi lenne a megoldás.

(#552) #82189568


#82189568
törölt tag

Sziasztok!

Segítségeteket szeretném kérni a kódom átírásában, azt szeretném, hogy miután lefut megkérdezze, hogy szeretném e még egyszer lefuttatni

#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>

int main()
{
int hofok;

cout<<"Add meg a homersekletet: ";
cin>> hofok;
if ( hofok < 100 ) {
cout<<"VIZ\n";
}
else if ( hofok > 100 ) {
cout<<"GOZ\n";
}
else if ( hofok < 0 ) {
cout<<"JEG\n";
}
system("PAUSE");
return 0;
}

Köszönöm előre is! :)

(#553) Jester01 válasza #82189568 (#552) üzenetére


Jester01
veterán

Kell bele mondjuk egy do { ... } while ciklus.
Mellesleg meglepne, ha ez valaha is kiírná, hogy "jég". :N

Jester

(#554) #82189568 válasza Jester01 (#553) üzenetére


#82189568
törölt tag

Igen, köszönöm, javítottam.
Viszont a do- while ciklus beágyazásában kérnék egy kis segítségét!
Magát a cout részt hova kell írni amikor megkérdezi, hogy szeretném e még egyszer?

#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>

int main()
{
int hofok;

do {
cout<<"Add meg a homersekletet: ";
cin>> hofok;
if ( hofok > -1 ) {
cout<<"VIZ\n";
}
else if ( hofok > 100 ) {
cout<<"GOZ\n";
}
else if ( hofok < 0 ) {
cout<<"JEG\n";
}while( itt kéne a segítség );
system("PAUSE");
return 0;
}

[ Szerkesztve ]

(#555) Jester01 válasza #82189568 (#554) üzenetére


Jester01
veterán

Hát, az a javítás nem sikerült túl jól. Szerintem kalapáld addig, amíg legalább a -1, +1, +101 értékekre jól működik. Most a 101-re azt mondja víz. :N

A folytatásra vonatkozó kiírást és bekérést még a while előtt megcsinálhatod és a while-ban csak azt kell ellenőrizni, hogy mit adott be a felhasználó.

Jester

(#556) #82189568 válasza Jester01 (#555) üzenetére


#82189568
törölt tag

Sikerült, de most újabb falba ütköztem:

#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>

int main()
{
int hofok;
char repeat;

do {
cout<<"Add meg a homersekletet: ";
cin>> hofok;
if ( 100 >= hofok && hofok >= 0 ) {
cout<<"VIZ\n";
}
else if ( hofok > 100 ) {
cout<<"GOZ\n";
}
else if ( hofok < 0 ) {
cout<<"JEG\n";
}
printf("Ujra ? (I vagy i)? ");

repeat = getchar();

putchar('\n');
}while(repeat == 'I' || repeat=='i');
system("PAUSE");
}

(#557) Jester01 válasza #82189568 (#556) üzenetére


Jester01
veterán

Ez már majdnem jó. Az a baj, hogy a hőfok bekérésekor a pufferben marad a sorvég jel. Erre a skipws manipulátor a segítség.

Ha egyszer c++, akkor az stdio-t és az stdlib-et felejtsd el és ne használd a standard C i/o műveleteket (de legalábbis ne keverd a kettőt).

Tehát a releváns 2 sor pl így nézzen ki:

cout << "Ujra ? (I vagy i)? ";
cin >> skipws >> repeat;

Mivel a bemenet alapból soronként pufferelt, ezért a kérdésre nem elég i-t nyomni, hanem kell az enter is. Ennek kikerülésére nincs egyszerű mód.

Jester

(#558) eXodus


eXodus
őstag

üdv!

wcstombs -al konvertálok stringet akkor ha ő betűhöz érkezik akkor onnantól Ě karaktereket szúr be végig.
Mi lehet a probléma?

(#559) Jester01 válasza eXodus (#558) üzenetére


Jester01
veterán

Valószínűleg nem ismeri fel érvényes betűnek az aktuális locale beállítások mellett. A wcstombs mit ad vissza? ( If a wide character was encountered which could not be converted, (size_t)(-1) is returned.)

Jester

(#560) eXodus válasza Jester01 (#559) üzenetére


eXodus
őstag

"Valószínűleg nem ismeri fel érvényes betűnek az aktuális locale beállítások mellett."
Hát igen..Váltogattam azt és amit én írok ő,ű betű az szépen ki is írja, de ami a változóban van azt nem.

"A wcstombs mit ad vissza? ( If a wide character was encountered which could not be converted, (size_t)(-1) is returned.)"

Jó h írod ... -1et ad vissaz.

(#561) Jester01 válasza eXodus (#560) üzenetére


Jester01
veterán

Akkor nézd meg mi az értéke a jó meg a rossz ő,ű betűknek. Majd keress hozzá olyan locale beállítást, amiben a megfelelő van.

Jester

(#562) eXodus válasza Jester01 (#561) üzenetére


eXodus
őstag

THX ...végre megvan :R
Ez működik úgy ahogy kell: _wsetlocale(LC_ALL, L".852");

(#563) DJ.Gróf


DJ.Gróf
aktív tag

Sziasztok! Elkezdtem tanulni a c++ programozást .Szükségem lenne egy BuilderX nevü programra. Honnan tudok letölteni ,otthoni felhasználású programot?

köszönöm a segítséget! :R :R

(#564) Darth_Revan


Darth_Revan
veterán

Sziasztok!
Tudna valaki mutatni egy példát egy olyan osztályra ami rugalmas tömböt valósít meg STL vector tároló segítségével?

Köszi.

(#565) Jester01 válasza Darth_Revan (#564) üzenetére


Jester01
veterán

Valami ilyesmire gondoltál?

#include <iostream>
#include <vector>
using namespace std;

template<class T>
class Array
{
public:
T& operator[](unsigned int i)
{
if (i >= _vector.size())
{
_vector.resize(i + 1);
}
return _vector.at(i);
}

operator T*()
{
return (_vector.size() > 0) ? &_vector.at(0) : 0;
}
private:
vector<T> _vector;
};

int main()
{
Array<char> s;
s[0] = 'a';
s[1] = s[0] + 1;
s[3] = 'c';
cout << (char*)s << endl;

Array<int> a;
a[1] = 3;
a[2] = 2;
a[3] = a[0] + a[1] + a[2];
for(int i = 0; i < 5; i++)
{
cout << a[i] << " ";
}
cout << endl;
return 0;
}

Az átméretezésnél szokás inkább duplázni a méretet.

Jester

(#566) kampi_


kampi_
csendes tag

Sziasztok!

Szeretnék futtatni egy külső programot az én programomon belül, de oly módon, hogy átadok neki paramétereket.Én így próbáltam:

execl("psexec.exe","-u","user","-p","pass","\\\\target","-i","-d","run",NULL);

vagy,

system("psexec -u user -p pass \\\\target -i -d run");

A user, a pass, beolvasott értékek, a target és a run pedig fájlból beolvasott értékek. Sajnos egyik módon sem működik, mert a psexec-et mindig a user nevű felhasználóval akarja elindítani, valamint a többi változót sem kezeli változóként, hanem azt veszi paraméternek amit én odaírtam. De nekem meg pont az lenne a lényeg, hogy ne kelljen megadni fix-en a programon belül, hanem lehessen úgy, hogy beolvasom a kért adatokat, és azt pedig behelyettesíti. Nagyon fontos lenne, légyszíves segítsetek.

Előre is köszönöm a segítséget!

(#567) martonx válasza kampi_ (#566) üzenetére


martonx
veterán

windows alatt mondjuk a CreateProcess paranccsal. Itt van hozzá egy kis leírás:

http://msdn.microsoft.com/en-us/library/ms682512(VS.85).aspx

Linux alatt is vannak megfelelő OS specifikus parancsok ehhez.

Én kérek elnézést!

(#568) Briganti


Briganti
tag

Hellosztok egy kis segitsegre lenne szuksegem ...

C-ben van egy olyan feladat hogy egy szoveges allomany soraiban szamok vannak, es meg kell keresni mindegyik sorba kulon kulon a legkisebb szamot, es egy masik allomanyba menteni azt.

amugy megoldhatonak tunik a feladat, ott vagyok elakadva hogy hogyan lehet beolvasni soronkent a szamokat ... az fscanf(f,"%d",szam) -l kitudom szedni a szamokat, de nemtudom hogy melyik sorhoz tartozik ... a legvegso megoldasra arra gondoltam hogy spaciumtol spaciumig olvasni oket karakterenkent, es ugy dolgozni veluk, de olyan ocska munkanak tunik, biztos van jobb megoldas :)

senki se higgye, hogy a hazimat akarom megoldatni veletek, nem a kodot kerem, csak legalabb valami tippet ami szerint el tudnek indulni, elore is nagyon szepen koszi!!!

If debugging is a process of removing bug, then programming is a process of putting them in ...

(#569) Fire/SOUL/CD válasza Briganti (#568) üzenetére


Fire/SOUL/CD
félisten

Hali!

Ha C-ben kell valamit segíteni, akkor a következőkben, majd a C topic-ba írd... :K

Az fscanf jó megoldás, feltéve ha a szöveges állományod fix formátumú, azaz minden sorban azonos számú érték szerepel. Tehát nem lehet, hogy az első sorban 6 míg a másodikban csak pl 4 integer szerepel. Nem írtad, hogy konkrétan hány szám van egy sorban, ezért én most 3-nak veszem.

Léterhozod a 3 integert
int szam1,szam2,szam3;

megnyitod a fájlt, és beolvasod az értékeket
fscanf(f,"%d %d %d", &szam1,&szam2,&szam3);
Ebben esetben a 3 szám szóközzel van elválasztva a szöveges fájlban.

Ha más karakterrel van elválasztva példul pontosvesszővel, akkor így:
fscanf(f,"%d;%d;%d", &szam1,&szam2,&szam3);
Tehát egyszerűen ugyanazt a karaktert kell az fscanf-nél használni mint amivel a szöveges fájlban is el vannak választva az adatok...

Szöveges fájlban ENTER karakterig tart egy sor. Amikor végigolvasod a fájlt minden egyes fscanf egy sor...

Fire.

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#570) Jester01 válasza Briganti (#568) üzenetére


Jester01
veterán

Ha pedig az utolsó szám után közvetlenül jön a sorvég, akkor pl. egy "%d%c" formátum és a beolvasott plusz karakter ellenőrzése elárulja, hogy az utolsó számnál tartasz-e.

Jester

(#571) Briganti válasza Jester01 (#570) üzenetére


Briganti
tag

bocsi a topikert!

azt hiszem ezzel probalkozom, mert nem egyforman vannak a szamok a sorokba (ezert is bocs, valoban kimaradt ez), es ez tunik a legjobbnak, koszi a segitseget!! :R :R

If debugging is a process of removing bug, then programming is a process of putting them in ...

(#572) Fire/SOUL/CD válasza Briganti (#571) üzenetére


Fire/SOUL/CD
félisten

Hali!

Az fscanf() arra is jó, ha változó darabszámú érték van soronként.... :K
csak azért írtam a korábbi módszert, mert az egyik lehetőséget feltételeztem, azaz fix számú érték szerepel soronként. itt egy példa ami demonstrálja a másik lehetőséget.
(nem a legszebb, de a legáttekinthetőbb :DDD )

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE * FH;
int szamok[9];

if (!(FH=fopen("adat.txt","rt"))) {
printf("Nem lehet megnyitni a fajlt...\nkilepes");
exit(-1);
}
printf("%d",fscanf(FH,"%d;%d;%d;%d;%d;%d;%d;%d;%d;%d",
&szamok[0], &szamok[1], &szamok[2], &szamok[3], &szamok[4], &szamok[5], &szamok[6], &szamok[7], &szamok[8], &szamok[9]));
fclose(FH);
return 0;
}

1. megnyitjuk a fájlt, ha nem lehet akkor hibával kilépünk
2. beolvassuk az első sorát a SZAMOK tömb-be illetve kiíratom hogy hány adatot sikerült beolvasni
3. lezárom a fájlt, kilépés

ez utóbbi lehetőség nagyon fontos. Az fscanf visszad egy egész értéket, ami azt tartalmazza hogy hány darab adatot tudott beolvasni
Ha az első sorban csak 1 adat volt, akkor 1-et ír ki, ha az első sorban 6 adat volt, akkor meg 6-ot ír ki a progi, stb, azaz tudod, hogy az adott sorban, hány adatod volt. Ezek bekerülnek a tömb-be, egy ciklussal végigjárva(aminek a ciklusszámlálója annyi, mint amennyit az fscanf() visszaadott) könnyen kikeresheted a legkisebbet.

Ahhoz hogy ez menjen, persze kell tudnod, a szöveges fájlod egy sorában mennyi szám szerepelhet MAXIMÁLISAN. Ennyi elemszámú tömböt állíts elő és kész.

Fire

UI: bocs, hogy én is ide pakoltam a C-topic helyett... :R

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#573) Briganti válasza Fire/SOUL/CD (#572) üzenetére


Briganti
tag

koszi, sikerult megoldanom, nem eppen igy, mert az sincs fixalva hogy hany szam van egy sorba, de beirom a megoldasom, kitudja hogy kinek segitek majd vele :)

while (!feof(fi)) {
fscanf(fi,"%d%c",&szam,&c);
if (elso==1) min=szam,elso=0;
else if (c!='\n') {
min = (min>szam)?szam:min;
elso=0;
}
else {
printf("\t\t\nMin: %d",min);
elso=1;
}
}

az elso valtozo mutatja hogy uj sort kezdtunk.

Meg egyszer koszi a segitsegeteket!! :R :R

[ Szerkesztve ]

If debugging is a process of removing bug, then programming is a process of putting them in ...

(#574) Darth_Revan válasza Jester01 (#565) üzenetére


Darth_Revan
veterán

Jah bocs, el is felejtettem megköszönni...szóval, köszi :B

(#575) kampi_


kampi_
csendes tag

Sziasztok!

Egy nagyon egyszerű kérdésem lenne, csak én vagyok béna. Szóval, hogy tudok a proc-ba egy db "-et másolni? Mert sajnos sehogy sem működik.

strcat(proc," " ");

Előre is köszönöm a segtíséget!

Kampi

(#576) gygabor88 válasza kampi_ (#575) üzenetére


gygabor88
tag

strcat(proc,"\"");

De vigyázz, hogy proc mérete megfelelő legyen.

(#577) Zwiebel


Zwiebel
tag

Sziasztok!

Újabb 2 db kérdéssel fordulnék hozzátok, ha nem nagy gond :DD

1.: Hogyan tudom azt megcsinálni c++-ban, hogy a fájlt lássam is mikor futtatja és nem csak "elkapja" előttem?

2.: Ha Windows Formosan (ablakosan) szeretnék C++-ban progit írni akkor oda jók ugyanazok a parancsok mint a "DOS"-os környezetűhöz?

Válaszotokat előre is köszi!

(Ja és még azért csak idáig jutottam el a programozásban ( semeddig ;] ) mert nagyon sok dolgom volt és nem igazán tudtam vele foglalkozni )

Egy új fogalmat szeretnék alkotni: ProG(r)a(m)mer

(#578) martonx válasza Zwiebel (#577) üzenetére


martonx
veterán

1. Úgy érted a dos ablak ne záródjon be automatikusan?

2. Biztosan nem. A formon teljesen más objektumokat kell majd használnod, mint a dos ablaknál. Pl. szöveget kiíratni egy label-el tudsz, nem cout-tal.

[ Szerkesztve ]

Én kérek elnézést!

(#579) Zwiebel


Zwiebel
tag

Köszönöm!

1. Igen úgy gondolom.

2. Akkor esetleg tudna nekem valaki mondani egy olyan oldalt, ahol az ilyen parancsok is fent vannak?

Előre is köszönöm (újra :)) )

Egy új fogalmat szeretnék alkotni: ProG(r)a(m)mer

(#580) gygabor88 válasza Zwiebel (#579) üzenetére


gygabor88
tag

1-re: system("pause");

(#581) bpx válasza Zwiebel (#579) üzenetére


bpx
őstag

windows forms azért annál összetettebb, nem csak úgy megy, hogy vannak "parancsok", mint a konzolos alkalmazásban
kézzel megírni a kódot elég bonyolult és aprólékos munka (bár nem lehetetlen :D)

innen le tudod tölteni a visual studio 2008 express-t (külön a visual c++ része elég): [link]

ebben tudsz windows forms-os alkalmazást létrehozni, és designer nézetben berakni komponenseket
a működést pedig háttérben, a kódban megvalósítani, bár ehhez nem árt tisztában lenni az alapokkal

[ Szerkesztve ]

(#582) martonx válasza Zwiebel (#579) üzenetére


martonx
veterán

Tökéletesen más szemléleti módot követel meg a dos ablak, és a windows forms.

A legjobb az adott fejlesztő környezet helpjeire támaszkodni. A form programozást javaslom ne C++-ban kezd el gyakorolni, hanem C#-ban, Visual Basicben, Delphiben stb...

Én kérek elnézést!

(#583) Zwiebel


Zwiebel
tag

Köszönöm a válaszokat! :R

Egy új fogalmat szeretnék alkotni: ProG(r)a(m)mer

(#584) Zwiebel


Zwiebel
tag

Kipróbáltam a system("pause") parancsot beírni de sajnos így is elviszi azonnal a képernyőt :(
Valamit elronthattam?

Egy új fogalmat szeretnék alkotni: ProG(r)a(m)mer

(#585) PazsitZ válasza Zwiebel (#584) üzenetére


PazsitZ
addikt

Esetleg próbáld ezt:

cin.get();

- http://pazsitz.hu -

(#586) Zwiebel


Zwiebel
tag

Köszönöm szépen! :)

Egy új fogalmat szeretnék alkotni: ProG(r)a(m)mer

(#587) Zwiebel


Zwiebel
tag

Újabb kérdésem lenne hozzátok :DD
A múltkori könyv nem igazán jött be és úgy gondoltam, hogy megpróbálkoznék egy másikkal hátha jobban elmagyarázza a dolgokat :DDD
Erre a könyvre gondoltam:

[link]

Azt szeretném megkérdezni, hogy valaki ismeri -e és ha igen akkor mik a tapasztalatai?

[ Szerkesztve ]

Egy új fogalmat szeretnék alkotni: ProG(r)a(m)mer

(#588) Cyno válasza Zwiebel (#587) üzenetére


Cyno
tag

Ezt már próbáltad? [link]

(#589) !wannabe válasza Cyno (#588) üzenetére


!wannabe
tag

Udv,

IMHO Stroustrup fele Bibliat inkabb akkor erdemes kezbe venni ha az embernek mar vannak valamelyest tapasztalatai. Elkezdeni a c++ -t nem abbol erdemes.

(#590) jattila40 válasza !wannabe (#589) üzenetére


jattila40
tag

Azt én sem javasolnám kezdőknek. Viszont a "Stanley B. Lipmann: C++ először" c. könyvet annál inkább. Bár ezt is legalább kétszer kell végigolvasni, hogy úgy-ahogy képben legyél C++ ból. Ha elsőre nem érted, nem kell kétségbe esni.

(#591) Csuty12


Csuty12
csendes tag

sziasztok,

nemrég kezdtem el programozni, de most át tértem Win 7-re és egyszerűen el sem akar indulni a Borland C++, tegnap még vistam volt, ott a teljes képernyő volt a probléma és az hogy angol billentyűs volt.. Most pedig el sem indul.. Valaki tudja esetleg hogy mitől lehetséges ez a hiba?

Köszönöm a segítséget

(#592) lakisoft


lakisoft
veterán

Hibaüzeletet ír valamit?

(#593) martonx válasza Csuty12 (#591) üzenetére


martonx
veterán

Legújabb Borland C++-t próbálod beüzemelni? Vagy valami régi win98-as verziót? :)

Én kérek elnézést!

(#594) lakisoft válasza martonx (#593) üzenetére


lakisoft
veterán

:)

(#595) sagit


sagit
addikt

Turbo C++ 3.0-t kellene futtatnom 64bites Vista-n.
megoldható valahogy?

előre is köszi :R

Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||

(#596) martonx válasza sagit (#595) üzenetére


martonx
veterán

Az nem az 5-ös verziónál környékén tart?

Én kérek elnézést!

(#597) sagit válasza martonx (#596) üzenetére


sagit
addikt

de. csak a suliban nem azt használjuk.

Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||

(#598) doc válasza sagit (#597) üzenetére


doc
nagyúr

csak nem Gyorbe jarsz? :)
amugy ez meg szerintem mindig nem C++, hanem windows problema...
probald meg Dosbox-ban, ott elvileg tutira mennie kell, ha mar a csodas microsoft-kompatibilitas szokas szerint csodot mond

(#599) sagit válasza doc (#598) üzenetére


sagit
addikt

nem . PTE.
dos parancssorra gondolsz?
onnan se megy :(((

Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||

(#600) martonx válasza sagit (#599) üzenetére


martonx
veterán

Tegyél fel egy virtuális XP-t.

MS VirtualPC 2007 erre való. Aztán abban futtatod a régi cuccokat.

Én kérek elnézést!

Copyright © 2000-2024 PROHARDVER Informatikai Kft.