Hogyan lehet egy file-ból több sor is kiolvasni? (C nyelv)
Írtam egy C-s kódot és az egy fileból iolvas sztringet.
Nos, a kód megcsinálja amire írtam, de ha a file-ban van sortörés akkor azt már nem olvassa be.
Próbáltam gets-vel de az meg nem képes file-ból olvasni /* legalábbis én nem tudom hogyan kell csinálni*/
(egyébként fscanf-vel olvastatom be.)
Valami megoldás??
Köszönöm szépen!
És mellesleg ilyen függvényeket hol találok C-hez??
Olyanokat mint a gets,scanf... miket lehet benne csinálni mivel itton tanulom?.
Ha bemásolnád a kódot, lehet könnyebb lenne...
Amúgy egy pár hasznos dolog: [link]
Köszi már ezek is sokat segítettek!
Fogom írni a kódot is csak pár dolgot átírok(változónevek, megjegyzések), mert amit én fejben tartok azt ti nem látjátok! :D
uhhh végre ide is eljutottam.
#include<stdio.h>
int main()
{
char szoveg[50];
FILE *file;
file=fopen("C:\\a\\valami.TXT","r"); /* ugye itt file kezelés lesz*/
fscanf(file,"%s",&szoveg); /* ez az a rész amikor kiolvasa a file-ból a szöveget, de csak egy részét szóval sortörést nem olvas be.*/
/* próbáltam: fgets(szoveg); - vel és fgets(file,szoveg); -vel is de azt meg hibának jelezte.*/
fclose(file); /* itt befelyezi a fileval való munkát*/
printf("%s",szoveg);
}
/* próbáltam úgy is hogy:*/
#include<stdio.h>
int main()
{
int a;
char szoveg[50]; /* a sortörés előtti szöveg sztringje*/
char szoveg2[50]; /* a szortörés utáni szöveg sztringje*/
FILE *file;
file=fopen("C:\\a\\valami.TXT","r");
fscanf(file,"%s",&szoveg);
if(szoveg[strlne(szoveg)]=='\n') /* ha a szöveg tartalmazza azt hogy: \n azaz sortörést akkor csinálja:*/
{
for(a=0;a<=strlen(szoveg);a++) /*annyi backspace-t vagyis törlést nyom le amennyi az első sorban lévő karakterek száma*/
{
fprintf(file,"\b");
}
fscanf(file,"%s",&szoveg2); /* utánna egy másik sztringbe kkiolvassa a második sort ami az első törlése miatt az első így ki bírja olvasni.*/
}
}
Nem tudom, hogy mennyire jó a kód.
Próbálkoztam és sehogy sem sikerült több sort kiolvasnom egy file-ból...
ui.: a 2. kódban lenne még egy olyan is, hogy #include<string.h>
mivel ez kell, hogy tudjam használni a(z) strlen() függvényt
#include <stdio.h>
#include <stdlib.h>
/*
Megjegyzés : nincs fordító se a gépemen, de ha jól emlékszem, akkor ez azt fogja csinálni amit kommentbe irtam :)
*/
int main()
{
char karakter;
FILE *file;
file = fopen("C:\\a\\valami.TXT","r"); /* Megnyit írásra */
if( file == NULL ){ /* C++ ban nem jo a NULL helyette sima '0'-át kell használni */
printf("Nem sikerult a fajlmegnyitas\n");
return -1;
}
while( fscanf(file,"%c",&karakter) != EOF ) /* EOF : fájlvég, szóval elvileg addig olvas amig nem talált fájlvéget */
{
if( karakter != '\n' ){ /* Minden egyéb karakter */
printf( "%c" , karakter );
}
else{ /* Ez az ág, ha sortörést talál */
printf( "\n" );
}
}
fclose(file); /* Fájllezárás */
return 0;
}
uuuu Köszönöm!!
Nem is tudtam, hogy ilyen sok minden van benne!! :D: D
Köszi még egyszer!
Kapcsolódó 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!