Results 1 to 9 of 9
Thread: ìàëêî ïîìîù çà Ñ
Hybrid View
-
23rd March 2006 15:47 #1
ìàëêî ïîìîù çà Ñ
Çíà÷è èñêàì äà ñè íàïðàâÿ íåùî êàòî áàçà äàííè íà Ñ. Ñòàâà âúïðîñ çà ñúâñåì åëåìåíòàðíà ïðîãðàìêà, êîÿòî ðàáîòè ñúñ ñòðóêòóðè è çàïèñâà èíôîðìàöèÿòà â òåêñòîâè ôàéë. Åòî êàêâî íàïèñàõ äîñåãà:
#include <stdio.h>
#include <stdlib.h>
struct s {
char fn[30];
char ln[30];
char u[30];
char p[30];
};
struct s e;
int main(void)
{
FILE *fp;
char tmp[50];
printf("Enter your first name\n");
gets( e.fn );
printf("Enter your last name\n");
gets( e.ln);
printf("Enter your username\n");
gets( e.u);
printf("Enter your password\n");
gets( e.p);
fp = fopen( "database.txt", "wb+" );
if( fp != NULL ) {
fwrite( &e, sizeof( struct s ), 1, fp );
fclose( fp );
}
return 0;
}
Îáà÷å èìà íÿêîëêî íåùà êîèòî èñêàì äà äîáàâÿ, à íåùî íå ñå ñåùàì êàê, îùå ñúì íà÷èíàåù. Ïúðâîòî íåùî å åäíî ìàëêî ìåíþ ñ äâå îïöèè, åäíàòà Äîáàâÿíå íà èìå êúì áàçàòà äàííè, à äðóãàòà òúðñåíå â áàçàòà. Èäåÿòà áåøå äà ñå ñòàðòèðà ìåíþòî ïúðâî ñúñ ñòàðòèðàíåòî íà ïðîãðàìàòà è îòòàì âå÷å äà ñå ïðàâè èçáîð ñúîòâåòíî êîéòî äà ñå ïðåìèíàâà êúì äåéñòâèå, îáà÷å íå çíàì êàê äà ãî íàïðàâÿ. Ïðàâèë ñúì ñè íÿêàêâè åëåìåíòàðíè ìåíþòà ñ if êîíñòðóêöèÿ îáà÷å íå ìîãà äà ñå ñåòÿ êàê ùå ñòàíå òóê. Äðóãèÿ ïðîáëåì êîéòî çàáåëÿçâàì å ÷å ïðè âñÿêî ñòàðòèðàíå ïðîãðàìàòà overwrite-âà ôàéëà çà çàïèñ, ÿñíî ìè å ÷å "wb+" òðÿáâà äà ñå ïðîìåíè ïî íÿêàêúâ íà÷èí, ïðîáâàõ äà ãî ïîñòàâÿ "àb+" îáà÷å ïàê íå ñòàíà, çàòîâà ñè ìèñëåõ äàëè å âúçìîæíî ïúðâî äà ñúçäàì âúïðîñíèÿ ôàéë, ñëåä êîåòî ïðåäè çàïèñâàíå íà èíôî òîé äà áúäå îòâàðÿí îò ïðîãðàìàòà, çà äà ñå èçáåãíå òîâà ïîñòîÿííî ïðåçàïèñâàíå...Àêî èìàòå èäåè ïî-ãîðíèòå âúïðîñè ìîëÿ ïîìîãíåòå ìè, íàäÿâàì ñå ÷å íÿìà äà èìà õîðà êîèòî äà ñå ïðèñìèâàò è äà ïðàâÿò ÿçâèòåëíè êîìåíòàðè îòíîñíî âúçìîæíîñòèòå ìè, â êðàéíà ñìåòêà íå ñå çàíèìàâàì îò ãîäèíè ñúñ Ñ, èìàì êíèãè âêúùè, ÷åòà, ó÷à ñå è ñå íàäÿâàì äà ìè ïîìîãíåòå ïîíå ìàëêî...
Ïîçäðàâè!Ad astra per aspera - To the stars through difficulties
Nvidia - The way you are meant to be played!
Blog - http://poseyd0n.blogspot.com/
-
23rd March 2006 16:33 #2
Îòíîñíî ìåíþòî ìîæåø äà ãî íàïðàâèø êàòî øàáëîííî ñ èçáèðàíå íà îïöèè ... ñàìî äà âìåòíà, ÷å çâåðñêè ñúì çàáðàâèë ñèíòàêñèñà ...
Ïðèìåðíî ìåíþ:
1) Àëà áàëà
2) Áàëà àëà
3) Àëàäèí
4) Ëàìïàòà ìó
Òîâà âñè÷êîòî ñ cout ìîæåø äà ãî íàïèøåø ïî ñúâñåì ñòàíäàðòåí íà÷èí. Îò òàì èçïèñâàø (ïàê ñ cout) "Èçáåðåòå íåùî ñè : " è ÷åòåø ñëåäâàùîòî íàïèñàíî ... ìàé ñ cin áåøå(ìíîãî ñúì çàáðàâèë ñèíòàêñèñà) è ïðàâèø íàé-íàé ïðîñòè÷êà êîíñòðóêöèéêà ... if(StringaDetoSiGoProchel=="1") {...} è òàêà çà âñÿêî åäíî ... (åòî íà íå ñå ñåùàì çà ñèíòàêñèñà íà case). Íèùî ñëîæíî íÿìà â òàêîâà ìåíþ. Èíà÷å ìîæåø ñëåä êàòî ãî íàïðàâèø òàêà äà ñè ïîèãðàåø äà ÷åòåø íàòèñíàò êëàâèø ñ getche()(ìàé òàêà áåøå) è àêî å ìåæäó 1 è 4 äà ñòàâà ñúîòâåòíîòî äåéñòâèå è òàêà. Ïðîñòî èäåè äà èñêàø. Âèíàãè ìîæåø è äà ñè íàïðàâèø êâàäðàò÷å, êîåòî äà ìåñòèø ñúñ ñðåëêèòå äà ðå÷åì àìà äà íå ïðåêàëÿâàìå
... íå áÿõ ìíîãî ïîëçîòâîðåí àìà ñúì çàáðàâèë ÿêî Ö-òî.
"Àå ìîæå ëè äîêàòî ñè ðàáîòèø åé òàêà è äà òè ñå íàïúëíè êîìïþòúðà ñ âèðóñè? Ùîòî àç ãëåäàì ñè íÿêàêâè ïîðíî ñàéòîâå è òîé ñàì ñå ïúëíè ..."
-
23rd March 2006 16:42 #3
Ïúðâîòî ìîæå äà ãî ðåàëèçèðàø òàêà:
Îòíîñíî âòîðîòî ñå ñåùàì çà äâà íà÷èíà, 1) Ïðîñòèÿ è 2) Ãîòèíèÿ íà÷èíCode:int answer; ... printf("1. Add account\n"); printf("2. Search for account\n"); printf("3. Exit\n\n?"); scanf("%d", &answer); if (answer == 1) { .. /* äîáàâÿíå */ } else if (answer == 2) { /* òúðñåíå */ } else return 0; ...
1)  íà÷àëîòî íà ïðîãðàìàòà ïðîâåðÿâàø äàëè ôàéëà ñúùåñòâóâà; àêî íå, ñúçäàâàø ïðàçåí. Àêî îïåðàöèÿòà òè å add, òî ãî îòâàðÿø çà append ("ab" ìèñëÿ, ÷å ùå ñâúðøè ðàáîòà).
2) Ãîòèíèÿ íà÷èí: äúðæèø ñè ïðåç öÿëîòî âðåìå áàçàòà â ïàìåòòàCode:.. // somewhere in the beginning: FILE *f; f = fopen("database.bin", "rb"); if (!f) {f = fopen("database.bin", "wb");} fclose(f); ... ... ... // code for add operation: f = fopen("database.bin", "ab"); fwrite(...)... ...
Àêî äîáàâÿø íåùî, ãî ïðàâèø â ïàìåòòà, è íà èçëèçàíå ïå÷àòàø âñè÷êî íàâåäíúæ.
Ïúðâî, êîäà çà ñúçäàâàíå íà ôàéë ñ áàçàòà, àêî òàêúâ íå ñúùåñòâóâà:
Ïîñëå, íàìèðà ñå ãîëåìèíàòà (êîëêî àêàóíòà èìàø â òîÿ ôàéë):Code:FILE *f; f = fopen("database.bin", "rb"); if (!f) {f = fopen("database.bin", "wb");} fclose(f);
 ãîðíèÿ êîä, "n" å áðîÿ íà àêàóíòèòå âúâ ôàéëà. Çàäåëÿìå ïàìåò çà n+1 àêàóíòà (òîâà ñå ïðàâè, çà äà íå çàäåëÿìå ïîñëå ïàê ïàìåò ïðè îïåðàöèÿ add):Code:int file_size, n; ... f = fopen("database.bin", "rb"); fseek(f, 0, SEEK_END); file_size = ftell(f); n = file_size / sizeof(s);
Ïðî÷èòàìå öÿëàòà áàçà:Code:s *data; ... data = (s*) malloc((n+1)*sizeof(s));
Àêî èìàìå îïåðàöèÿ add, ïðîñòî óâåëè÷àâàìå n, è íà êðàÿ, ïðè èçõîä îò ïðîãðàìàòà ïðàâèì:Code:... rewind(f); fread(data, sizeof(s), n, f); fclose(f); ...
Code:f = fopen("database.txt", "wb"); fwrite(data, sizeof(s), n, f); fclose(f); free(data);Åòî òàêà ñå ïëîäÿò òå, êàçâàì ñè àç. Ïîä íîñà òè.
"640K îught to be enough for anybody" - Bill Gates, 1981
Òåñòîâå íà áàòåðèè::Machine specs::Fract::AGG::ÍåÑåÑúðäè×îâå÷å::Baileys::blog::YouTube channel
-
23rd March 2006 16:48 #4
Ìîæå è íèùî ñìèñëåíî äà íå êàçàõ àìà ïîíå ÿäîñàõ õîðàòà çàíèìàâàùè ñå ïîâå÷å ñúñ Ñ++ îò ìåíå è òå òè êàçàõà
"Àå ìîæå ëè äîêàòî ñè ðàáîòèø åé òàêà è äà òè ñå íàïúëíè êîìïþòúðà ñ âèðóñè? Ùîòî àç ãëåäàì ñè íÿêàêâè ïîðíî ñàéòîâå è òîé ñàì ñå ïúëíè ..."
-
23rd March 2006 17:02 #5
Íèùî ïîäîáíî, Rostislao, ïðîñòî ñè ïîñòíàë, äîêàòî àç ïèøåõ ìîÿ ïîñò
Åòî òàêà ñå ïëîäÿò òå, êàçâàì ñè àç. Ïîä íîñà òè.
"640K îught to be enough for anybody" - Bill Gates, 1981
Òåñòîâå íà áàòåðèè::Machine specs::Fract::AGG::ÍåÑåÑúðäè×îâå÷å::Baileys::blog::YouTube channel
-
23rd March 2006 17:07 #6
Òðÿáâà è àç äà ñè "áîäíà" åäíî Ñ++, ÷å ìíîãî ìó ñå êåôÿ íà ñòåãíàòèÿ ñèíòàêñèñ. Èíà÷å äà íå ìó ñïàìÿ ïîâå÷å òåìàòà íà ÷îâåêà êàòî íàïèøà ðàáîòåùîòî ìåíþ â òåêñòîâ ðåæèì(ïðàâèõ ãî åäíî âðåìå íà ïóê íà âñåçíàåùàòà ñè ïðåïîäàâàòåëêà â óíèâåðñèòåòà) ùå òè ãî ïðàòÿ, àìà ñåãà íå ñìåÿ äà ñå èçëàãàì ñëåä òîëêîâà ãîäèíè íåïðàêòèêóâàíå.
"Àå ìîæå ëè äîêàòî ñè ðàáîòèø åé òàêà è äà òè ñå íàïúëíè êîìïþòúðà ñ âèðóñè? Ùîòî àç ãëåäàì ñè íÿêàêâè ïîðíî ñàéòîâå è òîé ñàì ñå ïúëíè ..."
-
23rd March 2006 18:09 #7
Ìíîãî áëàãîäàðÿ çà ãîòèíèòå èäåè! Îáà÷å íå ðàçáðàõ êàê äà îñúùåñòâÿ òúðñåíå â áàçàòà äàííè, ïðîñòî íå ìîãà äà ñå ñåòÿ, à è ÿâíî îïèòúò ìè å îãðàíè÷åí...ùå ñúì âè áëàãîäàðåí àêî ìè ïîìîãíåòå è çà òîâà ïîñëåäíî íåùî...
Ad astra per aspera - To the stars through difficulties
Nvidia - The way you are meant to be played!
Blog - http://poseyd0n.blogspot.com/




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè