09. oktober 2002 - 09:56Der er
21 kommentarer og 1 løsning
Structure problem c ++
hejsa
Jeg har et problem her..Jeg har lavet en char pointer, "char *temp;" som jeg godt vil have med i denne kode..Men jeg kan ikke rigtigt få det til at virke... Jeg kan bare gøre sådan har normalt med de andre variabler ch ='g';, men ikke med pointeren...hvorfor det, og hvordan gør jeg så ??
#include <stdio.h>
struct mystruct {
char ch; char *temp; int tal; };
int main(void) { FILE *stream; struct mystruct s;
if ((stream = fopen("c:\\text.txt", "r+")) == NULL) { fprintf(stderr, "Cannot open output file.\n"); return 1; }
s.ch = 'D'; s.temp = "a"; s.tal = '6'; fwrite(&s, sizeof(s), 1, stream); /* write struct s to file */ fclose(stream); /* close file */ return 0; }
du kan ikke gøre: fwrite(&s, sizeof(s), 1, stream); /* write struct s to file */
når du har pointer i en struct. når du gemmer structen, gemmer den lokationen hvor din streng ligger (adressen), ikke indholdet. derfor er du nødtil at gemme den "manuelt".
std er et namespace. Når man definerer fx en klasse i et namespace, skal compileren vide det, fx med brug af using. namespaces giver den fordel, at man kan have flere klasser der hedder det samme, uden det giver problemer for compileren.
Fx er der nogle klasser der hedder det samme i STL (Standard Template Library), hvilket er en del af C++ defenitionen og i MFC (Microsoft Foundation Classes). Det ville betyde at compileren ikke kunne vide hvilken af klasserne den skulle bruge, hvis man ikke anvende et namespace!
jeg har kigget på problemer selv, har lige løst det...
Mvh
Daniel
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.