View Full Version : c++ getline
int main() {
string s1,s2,s3;
cout << " Immetti la prima stringa: ";
getline(cin,s1);
cout << " Immetti la seconda stringa: ";
getline(cin,s2);
cout << " Immetti la terza stringa: ";
getline(cin,s3);
cout << s1+s2+s3 << endl;
}
perchè con il comando getline nn riesco a memorizzare in s2 la stringa da me immessa nella giusta posizione?
es. immetti la prima stringa: XXX
immetti la seconda stringa: YYY
immetti la terza stringa: ZZZ
out: XXXYYYZZZ
A me funziona proprio come hai scritto nell'esempio...
sotto linux anche a me!
il problema è sotto windows utilizzando il microsoft visual studio c++!
L'avevo provato sotto Windows con MinGW32...
Ora l'ho provato con VC++...ed hai ragione !!!
A me fa un gioco strano... Dalla seconda coppia di istruzioni in poi mi chiede prima l'input e poi mi presenta l'output...e dopo c'è anche un input fasullo dopo il terzo output... :boh:
Mi sa tanto di bug...
già...uffi...io devo fare il mio progetto in win...mi sa ke dovrò smattetare con degli cin.ignore o cose simili
Usa MinGW Developer Studio da www.parinya.ca
Perchè se definisco una funzione friend nella classe questa,
nel microsoft visual c++, nn riesce ad accerdermi ai membri privati?
Questa mi è sempre funzionata... Posta un po' un codice d'esempio...
#ifndef SCREEN_H
#define SCREEN_H
#include <iostream>
#include <string>
using namespace std;
class Screen {
public:
Screen(int hi=8,int wid=40,char bkground = '#');
int height() { return _height; }
int width() { return _width; }
bool isEqual(Screen&,Screen*);
void home() { _cursor = 0; }
void move(int,int);
inline char get() { return _screen[_cursor]; }
char get(int,int);
bool checkRange(int,int);
void copy(const Screen &);
void set(const string &s);
void set(char ch);
private:
string _screen;
string::size_type _cursor;
short _height,_width;
inline int remainingSpace();
// friend istream& operator>>(istream&,Screen&);
friend ostream& operator<<(ostream&,const Screen&); // perchè nn va?
};
#endif // SCREEN_H
.....
ostream& operator<<(ostream& os,const Screen& s) {
os << " < " << s._height << " , " << s._width << " > ";
os << s._screen;
return os;
}
nn riesco ad accedere a _height ecc... in questo modo!
forse potrei uscre le funzioni height() ke mi restituiscono tali valori?!
Però come friend dovrei avere accesso!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.