Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 8. diel - Textové reťazce v jazyku C

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
David Švec
Člen
Avatar
Odpovedá na Libor Šimo (libcosenior)
David Švec:18.7.2017 15:19

aha díky, zkusím to nějak nastudovat :)

Avatar
David Švec
Člen
Avatar
David Švec:18.7.2017 16:22

scanf(" %50[^\n]s", jmeno);
mohl by mi někdo vysvětlit tento řádek kódu?
myslím proč je před % mezera a proč tam je [^\n] ? děkuji

Avatar
Odpovedá na David Švec
Libor Šimo (libcosenior):18.7.2017 16:31

Medzera je na to, aby sa tzv. zahodil predchadzajuci ENTER.
\n ze zadavanie je ukoncene klavesou ENTER.

Odpovedať
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Student C
Člen
Avatar
Student C:31.3.2018 10:27

/************­************************­************************­*****************

  • jarvis program (komunikator) verze 0.0.1 *
  • program za učelem zakladny komunikace s počitacem skrz jeden program *

*============­========================­========================­=================

  • vytvořil: Timoteus kupec datum: 30.3.2018 *

*************­************************­************************­****************/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
#include "jarvis.h"

int main(){

///struktury zakladních vìci pro progrm

struct udaje{
int it_is_you;
char jmeno[50];
char primeni[50];
char rok[156];
char weight[156];
char height[156];
}zakladni;

struct udaje2{
char jmeno2[50];
char primeni2[50];
char rok2[156];
char weight2[156];
char height2[156];
}zakladni2;

struct question{
char otazka001[500];
char odpoved001[500];
char for_read001[500][5­00];
char for_read002[500][5­00];
char for_write[500][500];
char systemova_pro­mena[500];
char nacteni_z_obr_co­mand[500];
}question1;

struct opakovani{
int opacko_programu;
int cikus_pro_naci­tani_ze_soubo­ru1;
}opakovani1;

opakovani1.opac­ko_programu=1;
///deklarace souborù

FILE txt1,txt_name_co­mand,*txt_coman­d;

jarvis_nadpis();

printf("it is you?if is you write 1!\n");
scanf("%i", &zakladni.it_is_y­ou);

if(zakladni.it_is_y­ou!=1){

txt1=fopen("jar­vis udaje tech.txt","w");

if(txt1==NULL){
printf("File don't opening.\n");
exit(1);
}

///nacitani udaju
printf("\nWrite your name.\n");
scanf("\n%[^\n]s", zakladni.jmeno);
getchar();
fprintf(txt1,"%s;­", zakladni.jmeno);
printf("Write your surname.\n");
scanf("%[^\n]s", zakladni.primeni);
getchar();
fprintf(txt1,"%s;­", zakladni.primeni);
printf("Write your age\n");
scanf("%s", zakladni.rok);
getchar();
fprintf(txt1,"%s;­", zakladni.rok);
printf("Write your weight in kg.\n");
scanf("%s", zakladni.weight);
getchar();
fprintf(txt1,"%s;­", zakladni.weight);
printf("Write your height in cm.\n");
scanf("%s", zakladni.height);
getchar();
fprintf(txt1,"%s;­", zakladni.height);

fclose(txt1);
}

txt1=fopen("jar­vis udaje tech.txt","r");

if(txt1==NULL){
printf("File don't opening.\n");
exit(1);
}

///tisknuti udaju z txt
fscanf(txt1,"%[^;­]s", zakladni2.jme­no2);
fscanf(txt1,";%[^­;]s", zakladni2.pri­meni2);
fscanf(txt1,";%[^­;]s", zakladni2.rok2);
fscanf(txt1,";%[^­;]s", zakladni2.weig­ht2);
fscanf(txt1,";%[^­;]s", zakladni2.heig­ht2);

system("cls");
jarvis_nadpis();
printf("\n\tHello %s, what can you do?\n",zaklad­ni2.jmeno2);

fclose(txt1);

do{do{

scanf("%[^\n]s", question1.otaz­ka001);
getchar();

txt_name_coman­d=fopen("name of comand.txt","r");
if(txt_name_co­mand==NULL){
printf("File don't opening(name of comand).\n");
exit(1);
}

for(opakovani.cikus_pro_na­citani_ze_sou­boru1=0; opakovani1.ci­kus_pro_nacita­ni_ze_souboru1<=500; opakovani1.ci­kus_pro_nacita­ni_ze_souboru1++){
fscanf(txt_na­me_comand,";%[^;]s", question1.for_re­ad001[opakova­ni1.cikus_pro_na­citani_ze_sou­boru1]);
}
fclose(txt_na­me_comand);

txt_comand=fo­pen("comand with name.txt","r");
if(txt_comand==NUL­L){
printf("File don't opening(comand with name).\n");
exit(1);
}
for(opakovani.cikus_pro_na­citani_ze_sou­boru1=0; opakovani1.ci­kus_pro_nacita­ni_ze_souboru1<=500; opakovani1.ci­kus_pro_nacita­ni_ze_souboru1++){
fscanf(txt_co­mand,";%[^;]s", question1.for_re­ad002[opakova­ni1.cikus_pro_na­citani_ze_sou­boru1]);
}
fclose(txt_comand);

for(question.for_read001; question1.for_re­ad001[opakova­ni1.cikus_pro_na­citani_ze_sou­boru1]!=questi­on1.otazka001; opakovani1.ci­kus_pro_nacita­ni_ze_souboru1++){
strcpy(questi­on1.systemova_pro­mena,question.for_read002[o­pakovani1.cikus_pro_na­citani_ze_sou­boru1]);
}

system("cls");
jarvis_nadpis();

if(strcmp(ques­tion1.otazka001,"stu­dents book")==0){
jarvis_znamky_va­zene();
}

if(strcmp(ques­tion1.otazka001,"e­xit")==0){
jarvis_vypnuti_pro­gramu();
}

}while(strcmp(qu­estion1.syste­mova_promena,";")<0&&s­trcmp(question.systemova_pro­mena,";")>0&&s­trcmp(question.otazka001,"stu­dents book")==0);

printf("I don't know what it means.\nPlease writ what you can.");
scanf("%[^\n]s", question1.nac­teni_z_obr_co­mand);
getchar();

txt_comand=fo­pen("name of comand.txt","a");
fprintf(txt_co­mand,"%s;", question1.nac­teni_z_obr_co­mand);
fclose(txt_comand);

}while(opakova­ni1.opacko_pro­gramu==1);

getchar();
return 0;
}
pomůžete mi dělal jsem to podle toho co znám a naučil jsem se tady ale sekne se to během chvilky
co s tím mam dělat pls pomoc už nad tím přemýšlím měsíc a vymyslel jsem todle ale nefunguje to a seká se to .!!!
program má vedlejší hlavičkový soubor který obsahuje (kalkulačku apod....)
program má dělat tzv siri píšu a on pote bude brát do systému a zapínat či otevírat
a pod.... tak poradíte??????????­????????????????????????­????????

Odpovedať
Cree que puedes manejarlo
Avatar
Student C
Člen
Avatar
Student C:31.3.2018 10:35

pro srozumitelnost přikládám knihovnu a pzn....(prace je delana v code::block)

/************­************************­***************

  • knihovna pro program jarvis verze 0.0.1 *

=============­========================­=============

  • vytvoøil: Timoteus Kupec datum: 30.3.2018 *

*************­************************­**************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

///funkce nadpisu

void jarvis_nadpis(){
printf("\t\t\t\t * \n");
printf("\t\t\t\t * * **** * * **** \n");
printf("\t\t\t\t * * * * * * * * * \n");
printf("\t\t\t\t * * * **** * * * *** \n");
printf("\t\t\t\t* * ******* * * * * * *\n");
printf("\t\t\t\t ** * * * * * * **** \n");
printf("********­************************­************************­************************­************************­****************\n");

}

///funkce vženeho prumeru znamek se zaokrouhlenim na konci.

void jarvis_znamky_va­zene(){
int y,n,m;
float x,z[100],a[10­0],delenec,de­litel;
printf("Write, how many marks you're going to type:\n");
scanf("%f", &x);
getchar();
for(y=1; y<=x; y++){
printf("\nWrite your mark:");
scanf("%f", &z[y]);
if(z[y]>=6){
printf("This mark does not exist.\nEnding please wait 10 seconds because you are idiot.");
Sleep(1000*10);
exit(1);
}
getchar();
printf("Write value of the mark:");
scanf("%f",&a[y]);
if(z[y]>=11){
printf("This value does not exist.\nEnding please wait 10 seconds because you are idiot.");
Sleep(1000*10);
exit(1);
}
getchar();
}
for(n=1; n<=x; n++){
delitel=delitel+a[n];
}
for(m=1; m<=x; m++){
delenec=delenec+a[m]*z[m­];
}
printf("\n\n\tThe mark you're searching for is %.2f, so it will be %.0f\n\n", delenec/delitel, delenec/delitel);
getchar();
}

///funkce vypnuti programu

void jarvis_vypnuti_pro­gramu(){
printf("Ending, pleas wait 10 seconds.");
Sleep(1000*10);///u funkce sleep se do argumenu pisi sekundy/1000
exit(1);
}

///zde puijdou dalši funkce:):):)

Odpovedať
Cree que puedes manejarlo
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Student C
DarkCoder:31.3.2018 13:20

Asi Tě má slova nepotěší, ale po shlédnutí kódu bych to celé smazal a začal znovu. Je tam špatně snad úplně vše.

Pokud chceš aby Ti kdokoli pomohl, založ nové vlákno v dané kategorii a dodržuj pravidla pro vložení příspěvku.
PRAVIDLA VLOZENI PRISPEVKU

Dvě rady na závěr, jak se dobereš vytouženého cíle:

  1. Postupuj systematicky a nepokračuj v něčem novém, dokud daný problém nevyřešíš.
  2. Zapracuj na písemném projevu, i sebelepší aplikaci zazdíš tím jak ji prezentuješ
Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Student C
Člen
Avatar
Odpovedá na DarkCoder
Student C:31.3.2018 17:43

no dik

Odpovedať
Cree que puedes manejarlo
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Student C
DarkCoder:31.3.2018 18:37

Abych byl více konkrétní a věděl si co je v programu chybně:

Např.:

  • používání void, pokud funkce nemá parametry
  • struktury deklaruj vně funkce
  • proměnné typu struktura definuj uvnitř funkce
  • používej typy které lépe korespondují s daným prvekm struktury
  • deklarace proměnných se v C provádí na začátku bloku
  • pro práci se soubory deklaruj ukazatel na FILE
  • pracuj s funkcemi, zpřehlední Ti to program
  • pro řetězce používej fgets()
  • nehledej ve scanf() složitosti
  • používej kratší identifikátory pro proměnné
  • v operacích se soubory vždy testuj na úspěšnost

Nic však z toho co jsem uvedl není složité.

Editované
Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Student C
Člen
Avatar
Odpovedá na DarkCoder
Student C:31.3.2018 18:45

dík
já jsem začátečník já se algoritmy teprv učím.

Odpovedať
Cree que puedes manejarlo
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 48.