Non riesco ad acquisire con getche()

#include<iostream>
#include<conio.h>
#include"C:\Users\Nicolas\Documents\MEGAsync\funz.h"//libreria di funzioni personale
#define N 8
using namespace std;

void leggiVet_int(int x[], int n){
for(int i=0; i<n; i++){
fflush(stdin);
x[i]=getche();
}
}

int main(){
int y[N];
bool s=true;
leggiVet_int(y, N);
cout<<"\n";
stamp_int_8(y);//per stampare il vettore
for(int i=0; i<N; i++){
if(y[i]!=0 || y[i]!=1){
s=false;
}
}
if(s==false)
cout<<"\nNON HAI INSERITO UN BYTE!!!";
}

il vettore stampato non corrisponde a quello acquisito da tastiera, l'errore sta nella funzione leggiVet_int dato che quando metto "cin>>y[i];" al posto del getche() funziona tutto, potete aiuarmi?
il vettore stampato non corrisponde a quello acquisito da tastiera, l'errore sta nella funzione leggiVet_int dato che quando metto "cin>>y[i];" al posto del getche() funziona tutto, potete aiuarmi?
Google Translator wrote:
the printed vector does not correspond to the one acquired from the keyboard, the error lies in the function leggiVet_int since when I put "cin >> y [i];" instead of getche () everything works, can you help me?

Didn’t you notice this is an English based forum?

The conio.h library is obsolete.
You can try ncurses
https://invisible-island.net/ncurses/
or pdcurses
https://pdcurses.org/
if(y[i]!=0 || y[i]!=1){
This is always true. Sempre vero.

y[i] == -1 ? --> -1 != 0 --> true
y[i] == 0 ? --> 0 != 0 --> false, but 0 != 1 --> true
y[i] == 1 ? --> 1 != 0 --> true
y[i] == 2 ? --> 2 != 0 --> true

You want &&.
Tu vuoi &&.
Last edited on
Topic archived. No new replies allowed.