Jak za pomocą cin >> zapisać wartość bezpośrednio do arg. funkcji?

0

Witam.
Jest możliwe zrobić coś takiego:

    for(cin>>n; n>0; --n)
    {
        while(Wczytaj(cin, cin))
         continue;
    }
 

abym nie musiał tworzyć zmiennych pomocniczych specjalnie po to, żeby przekazać to co wpisałem do funkcji?

bool Wczytaj(int x, int y){
    if(p.size() > 0 && x == p[0].x && y == p[0].y)
     return false;
    p.push_back({x, y});
    return true;
} 
0
template <T>
T getT()
{
 T val;
 cin >> val;
 return val;
}

cout << func(getT<int>(), getT<int>()) << endl;

Nie testowałem. ;)

0

template <T> → template <class T>

1

Spróbuj z

template<typename T>
T read(istream &in = cin) {
	T result;
	cin >> result;
	return result;
}

Dzięki RVO nie musisz się martwić o problemy ze zbędnymi kopiami.

0

Moglibyście mi podpowiedzieć, dlaczego SPOJ wywala mi błędna odpowiedź przy zadaniu: http://pl.spoj.com/problems/JSZYCER/ ?
Kod:

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

string Alfabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string Szyfr =   "DEFGHIJKLMNOPQRSTUVWXYZABC";

int main()
{
    char buff[200];
    string text;
    text.reserve(201);
    while(cin.getline(buff, 200))
    {
        text.clear();
        text.insert(0, buff);
        for(auto &it : text)
        {
            size_t i = Alfabet.find(it);
            it = Szyfr[i];
        }
        cout << text << endl;
    }
    return 0;
}
 
2

Boś przekombinowałeś okropnie!

#include <cstdio>
#include <cctype>
using namespace std;

int main()
  {
   for(char ch;(ch=getchar())!=EOF;) putchar(isupper(ch)?'A'+(ch-'A'+3)%26:ch);
   return 0;
  }

Zaś z powodu jakiegoś buga w gcc twój kod nie wykonuje całej pętli while oraz instrukcji przed nim http://ideone.com/Fpo3kP zobacz że nawet "!!" się nie wyświetlił.

1 użytkowników online, w tym zalogowanych: 0, gości: 1