Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Zdravim, mam tohle : #include <stdio.h>
int main(void)
{FILE *fr;
int i;
if((fr=fopen("TEST.TXT","r")) == NULL)
printf("soubor se nepodarilo otevrit");
while((i=getc(fr)) != EOF)
putchar(i);
return 0;
}
chtel bych, abych mohl zadat jmeno souboru a pote jej otevrit. (misto TEST.TXT jmeno zadaneho souboru). Narazil jsem na knihovnu #include <string.h>. Toto oficialne neznam, melo by to jit nejak obejit. A druhy problem, bude-li text v souboru dlouhy, jak zajistit strankovani po zaplneni obrazovky.
Offline
Zdravím,
taky začínám s C, ale tohle funguje. Možná je i elegantnější řešení.
#include <stdio.h> int main(void) { FILE *fr; int i; char nazev[10]; printf("Zadejte nazev souboru: "); scanf("%s",&nazev); if((fr=fopen(nazev,"r")) == NULL) printf("soubor se nepodarilo otevrit"); while((i=getc(fr)) != EOF) putchar(i); printf("\n"); system("pause"); return 0; }
EDIT: stránkování se provádí přímo v cmd přidáním "|more" za nazev souboru, čili pokud máš soubor uložený jako kopie.exe, tak do cmd zadáš "kopie |more". To ti bude stránkovat text, pokud se nevejde na obrazovku.
Offline
program ma nakonec vypadat takhle nejak
#include <stdio.h>
vypis()
{ FILE *fr;
int i;
char nazev[10];
printf("Zadejte nazev souboru: ");
scanf("%s",&nazev);
if((fr=fopen(nazev,"r")) == NULL)
printf("soubor se nepodarilo otevrit");
while((i=getc(fr)) != EOF)
putchar(i);
}
double vypis_soubor(void)
{ vypis();
return (0.5);
}
int main(void)
{ FILE *fr;
vypis_soubor();
}
funkce double vypis_soubor(void) je v zadani a problem je v tom, ze mi to nevrati cislo 0.5. Potreboval bych podle zadani, aby mi v pripade, ze se soubor neotevrel vratil 1.1 a v pripade, se otevre, tak 0.5. Zkousel jsem #define cislo(x) a nic mi to nebylo platne. Je to vubec mozne v tomto pripade vypsat takove cisla?
Offline
Takto?
#include <stdio.h> int vypis() { FILE *fr; int i; char nazev[10]; printf("Zadejte nazev souboru: "); scanf("%s",&nazev); if((fr=fopen(nazev,"r")) == NULL){ printf("soubor se nepodarilo otevrit, navratova hodnota bude 1.1\n"); return 0; } printf("Soubor otevren, navratova hodnota bude 0.5\n"); while((i=getc(fr)) != EOF) putchar(i); printf("\n"); return 1; } double vypis_soubor(void) { if (vypis()) return 0.5; else return 1.1; } int main(void) { FILE *fr; if (vypis_soubor() == 0.5) printf("otevren"); system("pause"); return 0; }
Offline