Hogyan írjak egy adatva késő függvényt c++-ban, hogy a főprogramban egy utasításban el legyen intézve a kérdés kiírása és a bevitt adat változóba tárolása?
Pl valami ilyesmi lenne:
input(típus kerdes, típus valtozo)
{
cout << kerdes;
cin >> valtozo;
}
main()
{
input("kérdés szövege", valami változó)
}
Emlékeim szerint itt valamit a * meg az & jelekkel kell kavarni, de hogy is van pontosan?
#8
a további kérdésem az, hogy ezt ugye kicsit másképp gondoltam.
ha jól értelmezem a GetUserInput visszaadja a bevitt adatot a main függvénykek.
amit szeretnék, az meg az, hogy a bekérő függvény argumentumjai között legyen egy változó, aminek az értéke lesz amit a felhasználó betáplál.
tehát ne úgy nézzen ki a main függvényből a hívás, hogy
x=GetUserInput("Adjon meg valamit"); // ahol x felveszi az értéket,
hanem
így GetUserInput("adjon meg valamit", x); // ahol x felveszi a megadott értéket.
emlékszem hogy lehet így is, s arra vagyok kíváncsi, hogy hogyan. Ezt mondjuk még C és nem C++ esetében láttam.
s ott, ha jól emlékszem a pointerekkel variálás volt.
Konkértan valami olyasmira emlékszem, hogy a fügvény, ha önmagán belül megváltoztatja egy változó értékét, akkor utána a main a megváltozott értékkel folytatja munkáját vagy nem.
Mintha olyasmi lett volna, hogy ha egy függvény megkapja az argumentumjait, pl
int osszeg(int a, int b){ int c; c = a+b; b++; return c;}
int main(){
int x=8,y=6,z=4;
osszeg(x,y);
return y;
}
ez a main függvény szeintem 6-ot ad vissza, mert y=6,
De volt valami olyasmi, hogy ha az osszeg függvénynél azt írjuk, vagy ilyesmit, hogy
int osszeg(int &a, int &b){ int c; c = a+b; b++; } ,
akkor a main függvényben az y már 7 lesz, mert az osszeg függvényben ott van, hogy b++
tehát olyan megoldást keresek, ahol a bevitt érték nem feltétlenül a függvény visszatérési értéke, hanem beleírja egy változóba.
Azért akarom így csinálni mert egy függvényben óhajtok több változót bekérni, tehát nem elég az egy visszatérési érték.
a c-s scanf( "%d", &x ); mintájára, ahol a bevitt adat x-ben tárolódik.
de most írjak scanf-et egy c++ programba??
Szándékossan nem bonyolítottam.
void GetUserInput(const std::string& output, std::string& input) {
std::cout << output;
std::getline(std::cin, input);
}
void GetUserInput(const std::string& output, int& input) {
std::cout << output;
std::cin >> input;
}
int main()
{
std::string nev;
GetUserInput("Add meg a neved: ", nev);
int kor;
GetUserInput("Add meg a korod: ", kor);
std::cout << "A te neved " << nev << " es " << kor << " eves vagy.\n";
}
Amúgy régen, amikortájt ezeket tanultam (mint látható, nem megtanultam), akkor még olyan.volt, hogy
#include <iostream.h>
Most meg eltűntek a .h kiterjesztések.
Ez miért van?
pontosan 98-ban tanultam ezeket először, Visual Studio Enterprise 98-at használva integrált fejlesztési környezetnek.
Arra is emlékszem, hogy
using namespace std;
sor sem volt annó.
anélkül is működött.
amit kérdeztem sikerült megoldanom.
#include <iostream>
using namespace std;
void GetUserInput(char *question, int *var)
{
cout << "Please enter an integer value: ";
cin >> *var;
}
int main()
{
int a;
GetUserInput("Please enter an integer value: ", &a;
}
tehát annyira voltam kíváncsi hogy a függvényhívásban a változó címét kell átadni, a függvény definícióban meg az oda mutató pointert használni.
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!