Tengo el mismo problema que tu...
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCitar#include<iostream>
using namespace std;
int main(){
int n,i;
cin>>n;
i=n-1;
while (i>0){
i=i-1;
cout<<i<<endl;}
system ("PAUSE");
return 0;
}
int main(){
int n,i;
cin>>n;
i=n;
cout << n << endl; //endl sólo si quieres hacer el salto de línea, y el cout de n sólo si quieres mostrar también el valor inicial, n
while (i>0){
i=i-1;
cout<<i<<endl;}
system ("PAUSE");
return 0;
}
CitarNi con un scanw(..), ni con un getstr(..) consigo capturar las letras mayúsculas con acentos...! Las minúsculas sí, después de haber activado las teclas especiales conkeypad(stdscr,TRUE);
#include <ncurses.h>
#include <string.h>
int main(void){
char text[30];
int i = 1;
WINDOW *conversa,*lectura;
initscr();
keypad(stdscr,TRUE);
lectura = subwin(stdscr,4,79,10,10);
conversa = subwin(stdscr,4,79,23,10);
box(conversa, ACS_VLINE,ACS_HLINE);
box(lectura, ACS_VLINE,ACS_HLINE);
printw("PRIMERA APLICACIÓN CON NCURSES! \n");
refresh();
while (i!=0) {
waddstr(lectura,"INTRODUCE TU MENSAJE: ");
move(5,5);
wgetstr(lectura,text);
wprintw(conversa,"MENSAJE DE LA OTRA VENTANA: %s\n",text);
scrollok(lectura,TRUE);
scrollok(conversa,TRUE);
wrefresh(conversa);
i = strcmp(text, "FI");
}
delwin(lectura);
delwin(conversa);
endwin();
return 0;
}
int MI_ProcessaLiniaLocal(int idSocketConversa){
//PRE:
//POST:
//Declaracio variables
char buffer[300],bufferEnviat[301];
int numBytes;
if((numBytes = read(STDIN,buffer,300))== -1) {
printf("Error en read()\n");
return (-1);
}
if (numBytes == 4 && buffer[0] == '/' && buffer[1] == 'f' && buffer[2] == 'i') {
printf("Has tancat la conversa.\n");
return 0;
}
else {
//FENT SERVIR EL PROTOCOL ESTABLERT, ENVIEM LA INFORMACIÓ REBUDA PER TECLAT.
bufferEnviat[0] = 'L';
int i = 0;
while (buffer[i]!='\n'){
bufferEnviat[i+1] = buffer[i];
i++;
}
if (send(idSocketConversa,bufferEnviat,numBytes,0)==-1){
printf("Error en el send()\n");
return (-1);
}
}
return 1;
}
int MI_ProcessaLiniaRemota (int idSocketConversa){
//PRE:
//POST:
//Declaracio variables
char buffer[301], bufferImprimir[300];
int numBytes;
if((numBytes = read(idSocketConversa,buffer,300)) == -1) {
printf("Error en read()\n");
return (-1);
}
else if (numBytes == 0) {
printf("L'usuari remot ha finalitzat la connexió. Fi de la conversa.\n");
return 0;
}
else {
if (buffer[0] == 'L'){
int i = 0;
while(i<numBytes-1){
bufferImprimir[i] = buffer[i+1];
i++;
}
bufferImprimir[numBytes-1] = '\0';
printf("Missatge de l'usuari remot: %s\n", bufferImprimir);
}
else {
printf("Error al rebre missatge de l'usuari remot (no segueix el protocol?)\n");
}
}
return 1;
}
Citarswitch (haArribat){
case -1:
exit (-1);
break;
case -2:
printf("Ha passat el temps màxim d'espera introduït\n");
exit (-1);
break;
case STDIN:
estat = MI_ProcessaLiniaLocal(sConnecta);
if (estat == -1) exit (-1);
else if (estat == 0) {
acabaConversa = close(sConnecta);
}
break;
default:
estat = MI_ProcessaLiniaRemota(sConnecta);
if (estat == -1) exit (-1);
else if (estat == 0) {
acabaConversa = close(sConnecta);
}
break;
}