Results 1 to 4 of 4

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date: Aug:2008
    Location: Ïåòðè÷ & Ñîôèÿ
    Posts: 136

    Ìàëêî îáÿñíåíèå çà åäíà çàäà÷êà íà C

    Çäðàâåéòå è ×åñòèòà Êîëåäà Èñêàì äà Âè ïîìîëÿ äà ìè îáÿñíèòå çàùî ñúñ çàäà÷êàòà ìè ñòàâà òàêà À òÿ å: Äà ñå âúâåäå òåêñò îò êëàâèàòóðàòà, êîéòî äà ñå çàïèñâà âúâ ôàéë ñ ðàçøèðåíèå .c (ñ èçáðàíî îò ïîòðåáèòåëÿ èìå). Çàïèñà äà ñå îñúùåñòâè ñèìâîë ïî ñèìâîë, êàòî ñå îñèãóðè âúçìîæíîñò çà èçâåæäàíå íà âúâåäåíèÿ òåêñò âúðõó åêðàíà.
    Ñúñ ñàìàòà çàäà÷êà ñúì ãîòîâ, íî íå ìîãà äà ñè îáÿñíÿ ìàëêà ÷àñò îò íåÿ. Çíà÷è ñúõðàíÿâàì èìåòî íà ôàéëà â ìàñèâ îò ñèìâîëè, èìåòî ãî âçèìàì ñ gets(). Ðàçøèðåíèåòî ñúì ãî íàïðàâèë äà ãî ñëàãà àâòîìàòè÷íî êàòî âúðòè åäèí for öèêúë. Ìàñèâà îò ñèìâîëè ñúì ãî íàïðàâèë îò 13 åëåìåíòà, çà äà ìîæå äà èìà 10 åëåìåíòà çà èìåòî íà ôàéëà, äâà çà ðàçøèðåíèåòî (.c) è åäèí çà '\0'.  ïîñëåäñòâèå îáà÷å ñå ïîëó÷àâà, ÷å ìîãà äà äàâàì èìå íà ôàéëà, êîåòî å îò 14 ñèìâîëà + 2 çà ðàçøèðåíèåòî è 1 çà NULL= òîòàë 16, à ìàñèâúò å ñàìî îò 13. Àêî äàì èìå îò 15 ñèìâîëà, ïðîìåíÿ ðàçøèðåíèåòî ìè íà .d, à âå÷å ñ ïî-ãîëÿìî èìå ñàìàòà ïðîãðàìêà êðàøâà.
    Ïîçäðàâè

    Åòî è êîäúò ìè:
    Code:
    void TextInput() {
    
        FILE *in, *out;
        int c,i;
        char name[13]={'\0'};
        printf("\nChoose a name for your .c file: ");
           gets(name);
    		for(i=strlen(name);i=='\0';i--);
    		name[i]='.';
    		i++;
    		name[i]='c';
    		i++;
    		name[i]='\0';
    		printf("\n");
    		printf("The file %s was successfully created!",(name));
    		fflush(stdin);
    
        in=stdin;
        out=fopen((name),"w");
        if(fopen==NULL) {
            printf("\nCannot write to file:");
        exit(1);
        }
        else
            printf("\nType the program code in the .c file\n\n");
        {
            do {
                c=fgetc(in);
                if(feof(in))
                    break;
                fputc(c,out);
    
            } while(c!=EOF);
    
            fclose(out);
        }
    }//end of TextInput()

  2. #2
    åíòóñèàçèðàí õàðäóåð System.gc()'s Avatar
    Join Date: Apr:2007
    Location: back in time
    Posts: 1,075
    ×åñòíî êàçàíî, íå ñòàâà ÿñíî çàùî ñè ñëîæèë îãðàíè÷åíèå çà äúëæèíàòà íà èìåòî íà ôàéëà îò 12 ñèìâîëà. Íî ïðåäè âñè÷êî îñòàíàëî, áèõ òè ïðåïîðú÷àë äà îãðàäèø áëîêà îò êîä, êîéòî ùå ñå èçïúëíÿâà âúâ for/if, ñúñ ñêîáè, çàùîòî èíà÷å ñòàâàò èíòåðåñíè íåùà, îñîáåíî â C/C++.
    UD3R|Q9550+1283|4x2 G.Skill@1066|MX500+1002FAEX+640AAKS+ST31 60|RX580-8GB|1841BLT|SS-760XP|Define7|z24i|Edifier S350DB
    geniusloci: ÀÌÄ ñå êóïóâà à) àêî ñè áåäåí; á) àêî ñà òå èçëúãàëè; â) àêî ñè áîëåí ôåí? nope|r.i.p.

  3. #3
    Registered User
    Join Date: Aug:2008
    Location: Ïåòðè÷ & Ñîôèÿ
    Posts: 136
    Àìè èäåÿòà ìè áåøå for-úò äà å áåç òÿëî, à äà ñå âúðòè îáðàòíî, êîëêîòî äà ìå "ïðåìåñòè" äî ïîñëåäíèÿ åëåìåíò íà ìàñèâà, êîéòî ñúäúðæà ïîñëåäíèÿ ñèìâîë îò èìåòî è îòòàì äà ñëîæà ðàçøèðåíèåòî. Îáà÷å ñè íàìåðèõ åäíà ãðåøêà - íå òðÿáâà äà å òàêà:
    Code:
    for(i=strlen(name);i=='\0';i--);
    , à òàêà:
    Code:
    for(i=strlen(name);name[i]=='\0';i--);
    È ñåãà êàòî ãëåäàì ìîæå äà ìèíå è áåç òîÿ öèêúë for. Åòî êàê ãî íàïðàâèõ ñåãà:
    Code:
    printf("\nChoose a name for your .c file: ");
    	gets(name);
    	i=strlen(name);
    	name[i]='.';
    	i++;
    	name[i]='c';
    	i++;
    	name[i]='\0';
    	printf("\n");
    	printf("The file %s was successfully created!",(name));
    	fflush(stdin);
    À îòíîñíî ñêîáèòå, äà ïðîáâàë ñúì îò ïúðâà ðúêà, ÷å ñòàâàò ãîëåìè ÷óäåñà , ïðîñòî òóê èäåÿòà ìè áåøå for-úò äà å ïðàçåí. Îãðàíè÷åíèåòî çà äúëæèíàòà â èìåòî ãî ñëîæèõ, çàùîòî íÿìàì èäåÿ êàê ìîæå áåç îãðàíè÷åíèå.  ñìèñúë ùå ñòàíå, àêî íàïðàâÿ ìàñèâúò, êîéòî ñúõðàíÿâà èìåòî ïî-ãîëÿì, íàïðèìåð îò 100 åëåìåíòà. Íî çà äðóã íà÷èí íå ìîãà äà ñå ñåòÿ.

  4. #4
    åíòóñèàçèðàí õàðäóåð System.gc()'s Avatar
    Join Date: Apr:2007
    Location: back in time
    Posts: 1,075
    Íå ñúì ïèñàë íà C, íî àêî ïîòúðñèø äîêóìåíòàöèÿòà íà ôóêöèÿòà gets, ùå âèäèø, ÷å ñå âîäè deprecated, èìåííî çàùîòî å íåñèãóðíà è ìîæå äà ñå ïðåïúëíè ñòðèíãà, â êîéòî ñúõðàíÿâàø âúâåäåíîòî îò ïîòðåáèòåëÿ èìå íà ôàéë. Èëè òðÿáâà äà îãðàíè÷èø íÿêàê ïîòðåáèòåëÿ äà âêàðâà ñàìî ïîçâîëåí áðîé ñèìâîëè, èëè äà ïîëçâàø äðóãà ôóíêöèÿ çà ÷åòåíå îò ñòàíäàðòíèÿ âõîä.
    UD3R|Q9550+1283|4x2 G.Skill@1066|MX500+1002FAEX+640AAKS+ST31 60|RX580-8GB|1841BLT|SS-760XP|Define7|z24i|Edifier S350DB
    geniusloci: ÀÌÄ ñå êóïóâà à) àêî ñè áåäåí; á) àêî ñà òå èçëúãàëè; â) àêî ñè áîëåí ôåí? nope|r.i.p.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè