Article View: es.comp.lenguajes.c++
Article #47Re: Leer caracteres
From: Pascal J. Bourguignon
Date: Tue, 14 Oct 2008 08:05
Date: Tue, 14 Oct 2008 08:05
69 lines
3689 bytes
3689 bytes
num11 <quintos_11@hotmail.com> writes:
> Hola!, lo que quiero es estar leyendo caracteres y almacenarlos en un
> arreglo, en el momento en que yo de una "F" (para mi ese va a ser el
> "final" de mi cadena) el programa finalizar� OK?
> Me puedes decir como ir�a el c�digo en C?? Bueno, lo que pasa es que
> ya prob� el que me pusiste pero como no c mucho no se si est� en C++ o
> en C.
> Disculpa, se que este me parece que es un grupo de C++, pero me puedes
> ayudar a como se har�a en C?? Gracias.
El programa que te d� era en C++ porque efectivamente, este es un
grupo de C++. H� aqui el programa en C. El siguiente programa
POSIX.1-2001 lee la entrada estandard hasta que no se d� un 'F', y
como dices que quieres leer hasta la 'F', cambi� la condici�n de
parada. Te dejo programar el resto, como almacenar los caracterios en
el arreglo.
#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <unistd.h>
void setRaw(int fd){
struct termios raw;
int res;
cfmakeraw(&raw);
res=tcsetattr(fd,TCSANOW,&raw);
if(res!=0){
perror("tcsetattr");
exit(1);
}
}
unsigned char readChar(int fd){
for(;;){
unsigned char buffer;
int res=read(fd,&buffer,sizeof(buffer));
switch(res){
case 0: break; // try again;
case 1: return(buffer);
default:
perror("read");
exit(1);
}
}
}
const int inpfd=0;
const int outfd=1;
const int errfd=2;
int main(void){
unsigned char c;
setRaw(inpfd);
printf("Type something, end with F\n",c);
fflush(stdout);
while('F'!=(c=readChar(inpfd))){
printf("Got: '%c'\n",c);
fflush(stdout);
}
printf("Got a final: '%c'\n",c);
fflush(stdout);
return(0);
}
--
__Pascal Bourguignon__
Technical Details
Message-ID:
<7chc7f7gb5.fsf@pbourguignon.anevia.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!87.106.161.54.MISMATCH!feeder1.news.weretis.net!newsfeeder.dynfx.net!weretis.net!ecngs!feeder2.ecngs.de!proxad.net!feeder1-1.proxad.net!cleanfeed2-b.proxad.net!nnrp20-2.free.fr!not-for-mailReferences:
<e30b42cf-4483-46ce-910a-86fdfcb5d51f@b1g2000hsg.googlegroups.com> <7c4p3g96j9.fsf@pbourguignon.informatimago.com> <dcd852ac-6cdf-445c-a5a8-7237c5eabff9@x41g2000hsb.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: f53ec,41024634405f2e4f
X-Google-Attributes: gidf53ec,domainid0,public,usenet
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!87.106.161.54.MISMATCH!feeder1.news.weretis.net!newsfeeder.dynfx.net!weretis.net!ecngs!feeder2.ecngs.de!proxad.net!feeder1-1.proxad.net!cleanfeed2-b.proxad.net!nnrp20-2.free.fr!not-for-mail
Newsgroups: es.comp.lenguajes.c++
Subject: Re: Leer caracteres
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA
oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9
033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac
l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR
mV+hO/VvFAAAAABJRU5ErkJggg==
X-Accept-Language: fr, es, en
X-Disabled: X-No-Archive: no
References: <e30b42cf-4483-46ce-910a-86fdfcb5d51f@b1g2000hsg.googlegroups.com> <7c4p3g96j9.fsf@pbourguignon.informatimago.com> <dcd852ac-6cdf-445c-a5a8-7237c5eabff9@x41g2000hsb.googlegroups.com>
From: pjb@informatimago.com (Pascal J. Bourguignon)
Date: Tue, 14 Oct 2008 10:05:02 +0200
Message-ID: <7chc7f7gb5.fsf@pbourguignon.anevia.com>
Organization: Anevia SAS
User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.2 (gnu/linux)
Cancel-Lock: sha1:MTVjZGQ0MjU5ZGI1ODExZDYzYjRhZGJiMTdmNzA0MGZiMWY1ZTY1MA==
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Lines: 69
NNTP-Posting-Date: 14 Oct 2008 10:05:02 MEST
NNTP-Posting-Host: 88.170.236.224
X-Trace: 1223971502 news-2.free.fr 3591 88.170.236.224:44647
X-Complaints-To: abuse@proxad.net