Hogy tudom ezt megoldani C-ben?
Ez a feladatunk és nem tudom, hogy kell megoldani hogy a program a saját forrásállományát olvassa be és ebben szeretnék segítséget kérni!
"Írjon programot, amely függvény segítségével beolvassa e program forrásállományát és meghatározza a betű karakterek számát. A fájl megnyitását a main-ben hajtsa végre. A függvény paramétere a fájlmutató, a függvényérték a karakterek száma legyen! Az eredményt, a függvényértéknek megfelelően a main írja ki."





getc() és a komparáláshoz az ASCII tábla kis és nagybetűs tartományának ismerete a barátaid lesznek.
Komplet kódot nem adok, mert eddigi tapasztalataim szerint a gyíkon hálátlanok az emberek.
nem a kis és nagybetűk megszámolásával van a gondom..hanem hogy hogyan olvassa be a saját forrásállományát a program..
igazából amíg ezt nem tudom addig a többi részt se tudom megcsinálni










Az megvan, hogy ha nem saját forrást kell olvasni?
Ugyanúgy kell a forrást is, az is sima szövegfájl.
//forras.c a forrasfajl
FILE* fp=fopen("forras.c","w");
//majd karakterenkent beolvasol
char c;
while(!feof(fp)) {
fscanf(fp,"%c",&c);
}
Innentől azt mondod, megy, igaz?





Ja hiba az előzőben. a "w" helyett "r"-t írj, olvasásra nyitod meg.
Bocs a figyelmetlenségemért :D
#include <stdlib.h>
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
int c1;
int szam = 0;
int szam1 = 0;
int szam2 = 0;
fp = fopen("main.c","r");
if(fp == NULL)
{
perror("Error");
system("pause");
return(-1);
}
while(1)
{
c = fgetc(fp);
if(feof(fp))
{
break ;
}
printf("%c", c);
c1 = ("%d", c);
if (c1 > 64 && c1 < 128){
szam1++;
}
if (c1 > 47 && c1 < 58){
szam2++;
}
szam++;
}
fclose(fp);
printf("\n");
printf("Byte:");
printf("%d",szam);
printf("\n");
printf("Betu_db:");
printf("%d",szam1);
printf("\n");
printf("szam_db:");
printf("%d",szam2);
printf("\n");
system("pause");
return(0);
}
További kérdések:
Minden jog fenntartva © 2025, 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!