Kezdőlap › Fórumok › Programozás › text feldolgozas c-ben
- This topic has 5 hozzászólás, 5 résztvevő, and was last updated 20 years, 7 months telt el by
tovis.
-
SzerzőBejegyzés
-
2004-10-12-09:34 #1977556
Hali!
A ciklust tedd blokkba!
2004-10-12-09:53 #1977557>A ciklust tedd blokkba!
Igen ez az koszi. Viszont igy is segfaultol….
gdb -ben ezt csinalja:(gdb) bt
#0 0x40078c74 in _IO_vfscanf () from /lib/tls/libc.so.6
#1 0x400802c4 in vfscanf () from /lib/tls/libc.so.6
#2 0x00000007 in ?? ()
#3 0x08048633 in _IO_stdin_used ()
#4 0xbffff858 in ?? ()
#5 0x00000000 in ?? ()
#6 0x4015cedc in ?? () from /lib/tls/libc.so.6
#7 0x40085c2f in fscanf () from /lib/tls/libc.so.6
#8 0x00000007 in ?? ()
#9 0x08048633 in _IO_stdin_used ()
#10 0xbffff858 in ?? ()
#11 0x080484b0 in main (argc=2, argv=0xbffff904) at fuz.c:21A sok kerdojeles sorrol hogy tudom meg micsoda? Illetve, hogy tudom megnezni, hogy milyen erteket kap az fscanf?
2004-10-12-11:54 #1977558Sziasztok!
Nagyon primitiv kerdesben akadtam el: egy textfile-t szeretnek beolvasni, amelyben stringek vannak veszzovel elvalasztva. Arra gondoltam, h probakent karakterenkent beolvasom (esetleg soronkent), de a belso ciklussal gond van:
#include
#includeint main(int argc, char * argv[]){
int fd,i;
char c;if (2 != argc) {
printf(„Usage: fuz n”);
return 1;
}if ((fd = open(argv[1], O_RDONLY)) <0 ) {
printf(„Error opening file: %sn”,argv[1]);
return 1;
}do
fscanf(fd,”%c”,&c);
printf(„A char %cn”,c);
while (c!=’,’);close(fd);
return 0;
}Erre azt mondja:
fuz.c: In function `main’:
fuz.c:21: warning: passing arg 1 of `fscanf’ makes pointer from integer without a cast
fuz.c:22: error: parse error before „printf”Nem tudom mi lehet a gond, de ha a do-t es while-t kikommentezem, lefordul, futtatva segfaultol:(
Mi a baja?Masik, nem lehet ezt egyszerubben megcsinalni? Olvastatni a vesszok kozott? Koszonom
[align=right][snapback]89305[/snapback][/align]Kipróbáltad már amit a warning ír? Az arg1 egy mutató. Az fscasnf-nek meg egy int van megadva.
2004-10-12-12:33 #1977559>Kipróbáltad már amit a warning ír? Az arg1 egy mutató. Az fscasnf-nek meg egy int van megadva.
Valoban, koszonom, mukodik
2004-10-28-11:33 #1977560Te a scanf nem int – ként kezeli a char változót?
2009-12-04-19:56 #1876435Sziasztok!
Nagyon primitiv kerdesben akadtam el: egy textfile-t szeretnek beolvasni, amelyben stringek vannak veszzovel elvalasztva. Arra gondoltam, h probakent karakterenkent beolvasom (esetleg soronkent), de a belso ciklussal gond van:
#include
#includeint main(int argc, char * argv[]){
int fd,i;
char c;if (2 != argc) {
printf(„Usage: fuz n”);
return 1;
}if ((fd = open(argv[1], O_RDONLY)) <0 ) {
printf(„Error opening file: %sn”,argv[1]);
return 1;
}do
fscanf(fd,”%c”,&c);
printf(„A char %cn”,c);
while (c!=’,’);close(fd);
return 0;
}Erre azt mondja:
fuz.c: In function `main’:
fuz.c:21: warning: passing arg 1 of `fscanf’ makes pointer from integer without a cast
fuz.c:22: error: parse error before „printf”Nem tudom mi lehet a gond, de ha a do-t es while-t kikommentezem, lefordul, futtatva segfaultol:(
Mi a baja?Masik, nem lehet ezt egyszerubben megcsinalni? Olvastatni a vesszok kozott? Koszonom
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz