Zum Inhalt springen

Daffi

Mitglieder
  • Gesamte Inhalte

    23
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Daffi

  1. naja kann ja sein,dass es bei der Main noch ne Ausnahme gibt. Gut dann probiere ich das nochmal
  2. Ok habe ein neues Projekt als Konsolenanwendung (dll und leer) erstellt. Dort habe ich meine Dateien reingepackt. Bis jetzt hatte ich eine main,welche nur eine Klasse instanziert und eine Methode aufruft. Mehr ist da nicht passiert. Kann ich die Main so stehen lassen oder muss ich da auch noch was ändern?
  3. Hi Leute, der Name sagt eigentlich schon alles. Ist es möglich ein vorhandenes C++ Konsolenprogramm (mit Visual Studio 2010 erstellt) in eine dll zu wandeln oder muss ich diese neu schreiben? Das Ergebniss soll so aussehen,dass man letztenendes nur auf eine funktion zugreift und diese einen vector zurückliefert. Der Rest der Funktionen soll nicht verwendet werden, nur die eine. Ist dies möglich und/oder was muss ich dazu ändern? Danke im vorraus, Daffi
  4. Arg hatte ich nicht gesehen, sorry. ABer das geht nicht, er haut nur datenmüll raus: -1900781014 richtig wäre 1086
  5. weil read nur ein Char Array akzeptiert!
  6. Hi Leute, Ich habe folgendes Problem: Mir liegt ein Binärfile vor welches vom Aufbau her immer gleich ist. Die ersten 4 Byte ergeben zusammen eine Zahl. Ich hoffe ihr könnt mir helfen. Aufbau des Files im Hex Editor: 00 00 04 3E Das Ergebnis wäre also 1086 und soll in eine Datei geschrieben werden bzw als Variable gespeichert werden. Ich hoffe ihr versteht mein Problem und könnt mir eine Lösung anbieten. #include <iostream> #include <fstream> #include <stdio.h> using namespace std; int INT_little_endian_TO_big_endian(int i) { return((i&0xff)<<24)+((i&0xff00)<<8)+((i&0xff0000)>>8)+((i>>24)&0xff); } int main() { ifstream quelle; quelle.open("C:\\Users\\Daffi\\Desktop\\Bearbeiten2", ios::in | ios::binary ); if (!quelle) // Fehler beim Öffnen? cerr << "Eingabe-Datei kann nicht geöffnet werden\n"; char dataID[4]={0}; //Einlesen von 4 Bytes quelle.read(dataID, 4); /* Hier sollte nun irgendwie eine Zahl draus werden, zur Zeit wird nur der Hex Wert angezeigt*/ for (size_t i=0;i<4;i++){ cout<<hex<<(int)dataID[i]; } quelle.close(); getchar(); return 0; } MfG Paul
  7. ich hab einfach nur das array für plz um 1 erhöht so wie er es mir gesagt hat. also plz[6].
  8. jap bin ich und ich versau mit grad mein freien tag mit dem mist!
  9. Du bist nicht zufällig an der HTW Dresden und machst grad deinen Beleg Wirtschaftsinformatik 1?
  10. Danke hat mein Problem teilweise gelöst. Max | Mustermann | 8888888888 | e | 55555555555 | 01108 | | (null) das steht jetzt da. Der Ort wird gar nicht mehr mit angegeben.
  11. jup habs hin bekommen mit den int .... blöder fehler! Allerings hab ich jetzt ein neues Problem. Ich will einen Struct in eine Datei schreiben. Es geht auch alles erstmalsoweit. Problem ist folgendes: Max | MÂustermann | 8888888888 | passwort | 55555555555 | 01108Dresden | Dresden | (null) Er hängt an die PLZ gleich noch den Ort dran und gibt ihr zusäzlich noch einmal aus. Woran kann das liegen? Der struct dazu: struct adresse { char plz[5]; char stadt[30]; }; struct benutzerdaten { char vname[30]; char nname[30]; char telefonnummer[12]; char passwort[30]; char kontonummer[10]; int rechte; struct adresse a; //siehe oben struct benutzerdaten *next; struct benutzerdaten *prev; }; sowie den Schreibpart: void write(void) { FILE *Ziel; struct benutzerdaten *zeiger; int i=0; Ziel = fopen("nutzer.txt", "w+b"); //r? if(Ziel == NULL) { printf("\224ffnen der Datei nutzer.txt fehlgeschlagen!"); getch(); } zeiger=anfang; while (zeiger!= NULL) { fprintf(Ziel, "%s | %s | %s | %s | %s | %s | %s | %s \n",zeiger->vname, zeiger->nname, zeiger->kontonummer, zeiger->passwort, zeiger->telefonnummer, zeiger->a.plz, zeiger->a.stadt, zeiger->rechte); zeiger=zeiger->next; } fclose(Ziel); }
  12. Hey, wie der name schon sagt ich hab ne menge Fehler dieser Art. /********************************************/ /* Datensatz anhängen */ /********************************************/ void anhaengen(char *vname,char *nname,char *kontonummer,char *telefonnummer,char *email,int plz,char *stadt,char *passwort,int rechte) { struct benutzerdaten *zeiger, *zeiger1; if(ende == NULL) { // Speicherplatzreservierung auf element ende if((ende=(struct benutzerdaten *)malloc(sizeof(struct benutzerdaten))) == NULL) { printf("Konnte keinen Speicherplatz für ende reservieren\n"); return; } } // für erstes Element der Liste if(anfang == NULL) { if((anfang = (struct benutzerdaten *)malloc(sizeof(struct benutzerdaten))) == NULL) { printf("Kein Speicherplatz vorhanden für anfang\n"); return; } // Übergeben der Werte auf anfang strcpy(anfang->vname, vname); strcpy(anfang->nname, nname); strcpy(anfang->telefonnummer, telefonnummer); strcpy(anfang->email, email); strcpy(anfang->kontonummer,kontonummer); strcpy(anfang->a.stadt, stadt); strcpy(anfang->passwort, passwort); strcpy(anfang->a.plz,plz); strcpy(anfang->rechte, rechte); anfang->next=NULL; ende=anfang; ende->prev=NULL; } else // für alle anderen Elemente { zeiger=anfang; // geht bis zum letzten durch und das nächste Element wird dran gehangen while(zeiger->next != NULL) zeiger=zeiger->next; if((zeiger->next =(struct benutzerdaten *)malloc(sizeof(struct benutzerdaten))) == NULL) { printf("Kein Speicherplatz für das letzte Element\n"); return; } zeiger1=zeiger; zeiger=zeiger->next; strcpy(zeiger->vname, vname); strcpy(zeiger->nname, nname); strcpy(zeiger->telefonnummer, telefonnummer); strcpy(zeiger->email, email); strcpy(zeiger->kontonummer,kontonummer); strcpy(zeiger->a.stadt, stadt); strcpy(zeiger->passwort, &passwort); strcpy(zeiger->a.plz, plz); strcpy(zeiger->rechte, rechte); zeiger->next=NULL; ende=zeiger; zeiger->prev=zeiger1; zeiger1->next=zeiger; } } } Hier der Auszug aus dem Header: void anhaengen(char *vname,char *nname,char *kontonummer,char *telefonnummer,char *email,int plz,char *stadt,char *passwort,int rechte); weitere Fehler: [Linker error] undefined reference to `anhaengen' [Warning] passing arg 1 of `strcpy' from incompatible pointer type Ich find die Fehler einfach nicht. Wäre dankbar über hilfe!
  13. Okay damit wäre Problem 1 gelöst. Zu dem 2.: Das ist teil einer Bankverwaltungssoftware.Problem ist das umlaute komplett ignoriert werden .... Sie werden nicht mitgeschrieben. für Müller dann z.B. Mller
  14. Guten abend, wieder hab ich ein kleines Problem. Es geht um das einlesen von einem Namen (Vor und nachnamen) welcher in eine Datei gespeichert werden soll. Dieses soll später noch erweitert werden z.b mit kontonummer. 1.Problem: Wie scanne ich genau 8Zahlen ein und auf was speichere ich sie? 2.Problem: wenn ich die Namen (z.B Müller) einlese speichert er den Buchstaben nicht. Quelltext: #include <stdio.h> #include <conio.h> struct personen { char *vname; char *nname; }; int main() { struct personen *anfang = NULL; struct personen *position = NULL; FILE *login; int i=0,max=3; char buchstabe; login=fopen("nutzer.txt","a+"); anfang= (struct personen*)calloc (1,sizeof(struct personen)); if (anfang==NULL) { printf("Das \224ffnen der Datei ist fehlgeschlagen!"); return 1; } anfang->next=NULL; // später freigeben!!!! position=anfang; /* VORNAME einscannen*/ printf("Vorname:"); position->vname = (char *)calloc(max, sizeof(char)); while((buchstabe=getchar())!=10) { if (i==(max-1)) { max=max+1; position->vname = (char *)realloc(position->vname,max*sizeof(char)); } position->vname=buchstabe; i++; } position->vname='\0'; max=3; i=0; /* Nachname einscannen*/ printf("Nachname:"); position->nname = (char *)calloc(max, sizeof(char)); while((buchstabe=getchar())!=10) { if (i==(max-1)) { max=max+1; position->nname = (char *)realloc(position->nname,max*sizeof(char)); } position->nname=buchstabe; i++; } position->nname='\0'; fputs(position->nname,login); fputs(position->vname,login); printf("Ihre Eingabe\n"); puts(position->vname); puts(position->nname); fclose(login); getch(); } Wie kann ich dies umsetzen? thx daffi
  15. Leider nicht.Es war nur Inhalt einer Übung. Wie gesagt es soll ein Wort mit einem Codewort ersetzt werden welches frei wählbar ist. Das Prinzip verstehe ich lediglich nicht.
  16. Ich glaube die Variable text soll das zu verschlüsselnde Wort sein wenn ich das richtig verstanden habe. Sinn ist ja eigentlich mit dem Codewort und dem zu verschlüsselnden Wort welches der Funktion übergeben werden ein Code zu basteln. Gearbeitet wird nichts das Passwort soll anscheinend unangetastet bleiben. Deswegen der *Textzeiger.Weiterhin nehme ich einfach mal an das das Passwort auf 20 Zeichen begrenzt ist. Das ist ja das Problem.Was will der Prof uns damit sagen???? Diese Verschlüsselung soll im Beleg vorkommen wobei ich immer noch nicht weis wie sie funktioniert.
  17. Hey ich bins schon wieder. Folgendes Problem: Uns hat ein prof ne Reihe von Code hingehauen die ich absolut nicht verstehe. Es handelt sich um eine Verschlüsselungs- Methode eines Pw´s. Mein Problem: 1) Code ist nicht ausführbar .... 2) Ich verstehe ihn nicht einmal Hier der Code: #include <stdio.h> #include <conio.h> char *codec(char *text,char codewort) { char *wort = (char*)malloc (20*sizeof(char)); char *textzeiger= text; char *wortanfang=wort; int i=0; while('\0'!=*textzeiger) { *wort++=(*(codewort+(i% strlen(codewort)))-65); i++; } *wort='\0'; return wortanfang; } Kann mir jemand da vllt behilflich sein? bzw mal Kommentare schreiben? Danke und euch ein Frohes Fest! Daffi
  18. Super Hinweis mit dem Delta. Hat geklappt. Und auch das es ihne array geht war ein klasse Hinweis Danke Leute
  19. Du meinst den Float einlesen und dann sofort checken bzw. counter mitlaufen lassen.Aber wie prüfe ich dann auf die Nachkommastelle? Bzw wo liegt mein Problem? Danke schon mal ich probiere es nochmal.
  20. Hi, also mein Problem lautet wie folgt: Ziel ist es viele Noten eingeben zu lassen(beliebig) und bei eingabe von 0 den Durchschnitt zu errechnen.Er nimmt alle Noten(float) mit .3 .5 .7 .Die Berrechnung ist noch nicht implementiert. Mein Problem ist das wie groß ich das Eingabe Feld auch mache, er nur 2 Zahlen eingeben lässt.Viellecht kann man auch mit malloc ein n-dimensionales Array anfertigen,wobei ich nicht so richtig weis wie. Wäre für Hilfe dankbar. #include <stdio.h> #include <conio.h> #include <stdlib.h> int main() { int i=0; int int_nachkomma[20]; int int_vorkomma[20]; float noten_eingabe[22];//Speicherproblem! printf("\nBitte ihre Schulnoten eingeben:\n"); do{ while((0==scanf("%f",&noten_eingabe)) || (noten_eingabe<0)){ //Abfangen von falschen eingaben fflush(stdin); printf("Keine positive Zahl!."); } int_vorkomma=noten_eingabe; //Vorkomma speichern int_nachkomma=((noten_eingabe*10.0+0.00001)-(int_vorkomma*10.0)); //Rest Filtern if ((int_nachkomma==3)||(int_nachkomma==5)||(int_nachkomma==7)||(int_nachkomma==0)) ; // Filtern der Nachkommastelle else printf("Keine positive Komma (3,5,7) Zahl!"); i++; } while(noten_eingabe!=0.0); getch(); return 0; }
  21. Daffi

    Endlosschleife

    Also ich habs hinbekommen! Danke für den tipp mit dem fabs! zum verständnis der Quelltext! #include <stdio.h> #include <math.h> #include <conio.h> int main () { float eingabe,epsilon; float yalt=0,yneu=0; printf("Programm zum n\204herungsweisen ziehen von Wurzeln:\n"); printf("------------------------------------------------\n\n"); printf("Von welchem x wollen sie die Wurzel berechnen?"); //Abfangen von Buchstabeneingaben und negativen Zahlen while((0==scanf("%f",&eingabe)) | (eingabe<0) ) { printf("\nIhr angegebener Wert ist keine positive Zahl!\n"); printf("Neue Eingabe:"); fflush(stdin); } printf("\n -----------------------"); printf("\nIhre Genauigkeitsschranke soll welchen Wert besitzen? | Form: 10^(-epsilon) |"); printf("\n -----------------------\n"); //Abfrage Epsilon = Genauigkeitswert printf("epsilon="); scanf("%f",ε); fflush(stdin); //Berechnung yneu=(eingabe/2); printf("\nZwischenschritte:\n"); printf("-----------------\n"); do{ yalt=yneu; //Variablentausch yneu=0.5*((eingabe/yalt)+yalt); //Ausgabe der Zwischenergebnisse printf("Yneu = %f\n",yneu); printf("Differenz = %f\n",fabs(yneu-yalt)); } while ((fabs(yneu-yalt)) > (pow(10,-epsilon))); //fabs = abs für float! printf("\nDer durch Ann\204herung ermittelte Wert betr\204gt %f.",yneu); printf("\nDer mit sqrt berechnete Wert ist %f.",sqrt(eingabe)); getch(); } Es funktioniert. Wer sonst noch Hinweise hat, ich wäre dankbar. Fange wie gesagt erst an die Sprache zu lernen.
  22. Daffi

    Endlosschleife

    Ja die schleife sollte ja auch abbrechen wenn der Unterschied zu gering wird und die annäherung akzeptabel ist. Das epsilon beträgt so um die 8.
  23. Daffi

    Endlosschleife

    Hi, folgendes ist das problem. Ich sollt ein Programm schreiben was mir die wurzel berechnet und diese mit der sqrt der math.h vergleicht. Das problem ist das die Werte richtig sind allerdings eine endlosschleife entsteht. Ausschnitt aus dem programm: yneu=(eingabe/2); do{ yalt=yneu; yneu=0.5*((eingabe/yalt)+yalt); printf("\n%f\n",yneu); printf("%f\n",abs(yneu-yalt)); } while ((abs(yneu-yalt)) < (pow(10,-epsilon))); printf("\n%f",yneu); printf("\n%f",sqrt(eingabe)); getch(); läuft wie gesagt bis dahin dufte. Woran liegt das?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...