Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Práce se soubory a řetězci Přednáška č. 9. Práce se soubory v C (1)  Knihovna #include  Knihovna #include  Ukazatel FILE *stream;  Otevření souboru.

Podobné prezentace


Prezentace na téma: "Práce se soubory a řetězci Přednáška č. 9. Práce se soubory v C (1)  Knihovna #include  Knihovna #include  Ukazatel FILE *stream;  Otevření souboru."— Transkript prezentace:

1 Práce se soubory a řetězci Přednáška č. 9

2 Práce se soubory v C (1)  Knihovna #include  Knihovna #include  Ukazatel FILE *stream;  Otevření souboru FILE * fopen(const char *filename, const char *mode);  Módy otevření souboru – "w", "r", "a", "rb", "rt"  Uzavření souboru int fclose(FILE *stream);  Metody pro čtení a zápis int fscanf(FILE *stream, const char *format[, address,...]); int getc(FILE *stream); char *fgets(char *s, int n, FILE *stream); int fprintf(FILE *stream, const char *format[, argument,...]); int putc(int c, FILE *stream); int fputs(const char *s, FILE *stream);

3 Práce se soubory v C (2)  Příklad použití: FILE *fw, *fr; int buff, i; fw = fopen("my_file.txt", "w"); for(i=0; i<10; i++) fprintf(fw, "%d \n", i); fclose(fw); fr = fopen("my_file.txt", "r"); for(i=0; i<10; i++) { fscanf(fr, "%d", &buff); printf("%d \n", buff); } fclose(fw);

4 Dialogy pro výběr souboru  Komponenty ve složce Dialogs  OpenFileDialog / SaveFileDialog if(openFileDialog->ShowDialog() == System::Windows::Forms::DialogResult::OK ) { MessageBox::Show( "Vybran soubor: " + openFileDialog->FileName, "", MessageBoxButtons::OK ); }

5 Řetězce v.NET (1)  NTS, proměnné, konstantní ukazatele  Typ System::String (dynamický typ do 2GB délky), nelze použít ve strukturách, je používán nativně funkcemi v.NET, ukládá řetězce v UNICODE (1 znak = 2B)

6 Řetězce v.NET (2)  Pro typ System::String jsou definovány operátory + a =, není tedy třeba používat funkce jako tomu bylo u NTS System::String^ a; // nezinicializovana retezcova promenna System::String^ b = "1234"; // inicializovany retezec a = b + "5678"; // soucet retezcu a kopie

7 Konverze mezi řetězci  Konverze z NTS na typ System::String pomocí konstruktoru s parametrem  Pro konverzi z typu System::String na NTS je třeba použít funkci Marshal::StringToHGlobalAnsi, pozor je ve jmenném prostoru System::Runtime::InteropServices System::String ^ a; //.NET retezec char b[] = "1234"; // NTS a = gcnew System::String(b); // konstruktor s parametrem using namespace System::Runtime::InteropServices; System::String^ a = "1234"; //.NET retezec char b[5]; // NTS char *buf = (char*)Marshal::StringToHGlobalAnsi(a).ToPointer(); // konverze pomoci funkce StringToHGlobalAnsi strcpy(b,buf); // pouziti zkonvertovaneho retezce Marshal::FreeHGlobal((IntPtr)buf); // uvolneni zkonvertovaneho retezce z pameti

8 Příklad  Vytvořte program, který rozdělí větu na slova.  Následně:  Vytiskněte větu s opačným pořadím slov.  Vytiskněte původní větu s opačným pořadím písmen ve slovech.  Abecedně seřaďte slova ve větě.  Všechny funkce musejí být nezávislé na platformě (fungují pro konzolu i Windows)


Stáhnout ppt "Práce se soubory a řetězci Přednáška č. 9. Práce se soubory v C (1)  Knihovna #include  Knihovna #include  Ukazatel FILE *stream;  Otevření souboru."

Podobné prezentace


Reklamy Google