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.
Gyorskeresés
Legfrissebb anyagok
Általános témák
LOGOUT.hu témák
- [Re:] Gurulunk, WAZE?!
- [Re:] [Jack Hunter:] Egérragasztó
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [attilasd:] A laposföld elmebaj: Vissza a jövőbe!
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [czundermák:] Retro PC vol. #3 abit IP35 Pro-XE és a körítés
- [Re:] [gban:] Ingyen kellene, de tegnapra
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Hozzászólások
gygabor88
tag
#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!
Jester01
veterán
Kell bele mondjuk egy do { ... } while ciklus.
Mellesleg meglepne, ha ez valaha is kiírná, hogy "jég".
Jester
#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 ]
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.
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
#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");
}
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
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?
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
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.
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
eXodus
őstag
THX ...végre megvan
Ez működik úgy ahogy kell: _wsetlocale(LC_ALL, L".852");
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!
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.
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
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!
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!
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 ...
Hali!
Ha C-ben kell valamit segíteni, akkor a következőkben, majd a C topic-ba írd...
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)
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
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!!
If debugging is a process of removing bug, then programming is a process of putting them in ...
Hali!
Az fscanf() arra is jó, ha változó darabszámú érték van soronként....
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 )
#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...
[ 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)
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!!
[ Szerkesztve ]
If debugging is a process of removing bug, then programming is a process of putting them in ...
Darth_Revan
veterán
Jah bocs, el is felejtettem megköszönni...szóval, köszi
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
gygabor88
tag
strcat(proc,"\"");
De vigyázz, hogy proc mérete megfelelő legyen.
Zwiebel
tag
Sziasztok!
Újabb 2 db kérdéssel fordulnék hozzátok, ha nem nagy gond
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
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!
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
gygabor88
tag
1-re: system("pause");
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 )
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 ]
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!
Zwiebel
tag
Köszönöm a válaszokat!
Egy új fogalmat szeretnék alkotni: ProG(r)a(m)mer
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
PazsitZ
addikt
Esetleg próbáld ezt:
cin.get();
- http://pazsitz.hu -
Zwiebel
tag
Köszönöm szépen!
Egy új fogalmat szeretnék alkotni: ProG(r)a(m)mer
Zwiebel
tag
Újabb kérdésem lenne hozzátok
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
Erre a könyvre gondoltam:
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
Cyno
tag
Ezt már próbáltad? [link]
!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.
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.
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
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!
lakisoft
veterán
sagit
addikt
Turbo C++ 3.0-t kellene futtatnom 64bites Vista-n.
megoldható valahogy?
előre is köszi
Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||
martonx
veterán
Az nem az 5-ös verziónál környékén tart?
Én kérek elnézést!
sagit
addikt
de. csak a suliban nem azt használjuk.
Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||
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
sagit
addikt
nem . PTE.
dos parancssorra gondolsz?
onnan se megy
Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||
Téma tudnivalók
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Mai Hardverapró hirdetések
prémium kategóriában
- HP Laptop 15-fd051ne - ÚJ - 15,6" FullHD IPS notebook - Core i5-1335U, 8GB, 512SSD, Win11
- Brother DCP-L2532DW wifis, multifunkciós lézernyomtató
- HP Pavilion x360 14-ek Convertible - ÚJ - 14" TOUCH notebook - i5-1235U, 16GB, 512SSD, Win11
- HP Spectre x360 16-aa0775ng - ÚJ - 16"-os OLED notebook - Intel U7 155H
- Apple 96W USB-C hálózati adapter / töltő