C fájlkezelésben valaki segítene?
Feladat: alacsony szinten hozzunk létre egy fájlt, írjuk bele a nevünket majd zárjuk le. Ezután olvassuk ki az információt a fájlból.
Én windows alatt csinálom, szóval aki ezalatt letudná futtatni, és/vagy esetleg a hibát megmondani azt megköszönném!:D
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <io.h>
int main()
{
int fh;
int fg;
int a;
int b;
char c[20];
char s[]="nevem";
fh=open("adat1.txt",O_RDWR | O_CREAT | O_TRUNC | O_BINARY | S_IWRITE | S_IREAD);
a=write(fh,s,strlen(s));
close(fh);
fg=open("adat1.txt",O_RDWR | O_BINARY);
b=read(fg,c,20);
printf("tartalma: %s\n",c);
close(fg);
return 0;
}
az a gond, h amikor printf-el kiíratnám a tartalmát akkor fura karaktereket ír ki össze vissza. Mit ronthattam le? köszi!
A read/write nem szabvány C függvények, nem tudom pontosan hogy működnek, de minden valószínűség szerint a c tömb tartalma az lesz, hogy {'n', 'e', 'v', 'e', 'm' és 15 szemét karakter}, ugyanis inicializálatlan terület maradt, és nem írtál bele sehol 0-t, márpedig a printf 0-nál áll meg %s esetén.
Így írd:
char c[20] = {0};
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!