Baue einen Lebenslauf HTML Editor im Kommandozeilenmodus
-
habe um Bewerbungen zu beschleunigen einen Kommandozeilen Lebenslauf geschrieben. Er fragt über die Kommandozeile die Daten ab und erstellt anschließend eine HTML Page.
So weit so gut.
Aber ich habe ein Problem immer wenn ich beim letzten Einlesevorgang bin, also in dem Fall nach "Besonderen Fähigkeiten" frage und anfange was einzugeben und dann bestätige, bricht das Programm ab und es Erscheint ein Windows Fenster wo drin steht Anweisung in irgen so eine hexadezimalzahl verweist auf Speicher, wieder so ne hex Zahl, Vorgan read konnte nicht durchgeführt werden. Ich glaube nicht das es an der Speicherallocation liegt. Habe es auch schon mit Arrays probiert. Selber Fehler.
hier erst mal der Code. Vielleicht könnt ihr ihn ja für euere Bewerbungen Benutzten. Einfach Fehler finden, dann compilieren und Daten eingeben. Und schon ist ein Bewerbungstauglicher Lebenslauf erstellt, wenn ich mich mit den Tags nicht vertan habe
Aber falls jemand den Fehler findet, bitte posten
#include <stdio.h> #define length0 10 #define length1 20 #define length2 30 #define length3 40 #define length4 50 #define lengthmax 200 #define item1 5 #define item2 10 #define item3 20 typedef struct { char sccMonthBeg[3]; char sccYearBeg[5]; char sccMonthEnd[3]; char sccYearEnd[5]; char sccText[lengthmax]; }scItem; void pointerinit(scItem **pArray, int length); void stringinput(char string[],unsigned int length); int main(int argc, char *argv[]) { scItem itemTest; char cBuffer1[3]; char cBuffer2[5]; char cBuffer3[3]; char cBuffer4[5]; char cBuffer5[lengthmax]; scItem **pscItemSchools = NULL; scItem **pscItemEducation = NULL; scItem **pscItemJobs = NULL; char *pcSkills[3]; const char* pszHtmlHead = "<html><head><title>Lebenslauf</title>\n" "<meta name='description' content='Lebenslauf für' />\n" "<meta name='author' content='Damir Abdijevic' />\n" "<meta name='keywords' content=' ' />\n" "<meta name='date' content='2005-01-23T08:00:00+00:00' />\n" "</head>\n" ; const char* pszTableMargin ="<br>\n<br>\n<br>\n"; const char* pszh0="Lebenslauf"; const char* pszh1="Angaben zur Person"; const char* pszh2="Schulbildung"; const char* pszh3="Ausbildung"; const char* pszh4="Berufstätigkeit und Fortbildungen"; const char* pszh5="Kenntnisse und Fertigkeiten"; const char* pszName ="Name :"; const char* pszStreet ="Strasse :"; const char* pszZipCity ="Postleitzahl/Ort:"; const char* pszTelephone ="Telefonnummer :"; const char* pszBirthDate ="Geburtsdatum :"; const char* pszBirthPlace ="Geburtsort :"; const char* pszPstatut ="Familienstand :"; const char* pszCitizen ="Staatsangehörigkeit :"; const char* pszBegMonth="Geben Sie den Anfangsmonat ein: "; const char* pszBegYear="Geben Sie das Anfangsjahr ein: "; const char* pszEndMonth="Geben Sie den Endmonat ein: "; const char* pszEndYear="Geben Sie das Endjahr ein: "; const char* pszDescription="Geben Sie die Beschreibung ein: "; const char cSkills[3][30] ={{"Sprachen :"},{"Hobbies :"},{"Besondere Interessen :"}}; char cName[length1]; char cFirstName[length1]; char cStreet[length2]; char cZip[length0]; char cCity[length2]; char cTelephone[length1]; char cBirthDate[length1]; char cBirthPlace[length1]; char cPstatut[length1]; char cCitizen[length1]; char cSkill[3][length4]; char cAbort; int iCount=0; int iSchCount; int iEduCount; int iJobCount; FILE *fpin, *fpout; printf("%s\n\n",pszh1); printf("Geben Sie Ihren Namen ein: "); fgets(cName,length1,stdin); fflush(stdin); printf("Geben Sie Ihren Vornamen ein: "); fgets(cFirstName,length1,stdin); fflush(stdin); printf("Geben Sie Ihre Strasse ein: "); fgets(cStreet,length2,stdin); fflush(stdin); printf("Geben Sie Ihre Postleitzahl ein: "); fgets(cZip,length0,stdin); fflush(stdin); printf("Geben Sie Ihren Wohnort ein: "); fgets(cCity,length2,stdin); fflush(stdin); printf("Geben Sie Ihre Telefonnummer ein: "); fgets(cTelephone,length1,stdin); fflush(stdin); printf("Geben Sie Ihr Geburtsdatum ein: "); fgets(cBirthDate,length1,stdin); fflush(stdin); printf("Geben Sie Ihren Geburtsort ein: "); fgets(cBirthPlace,length1,stdin); fflush(stdin); printf("Geben Sie Ihren Familienstand ein: "); fgets(cPstatut,length1,stdin); fflush(stdin); printf("Geben Sie Ihre Staatsangehoerigkeit ein: "); fgets(cCitizen,length1,stdin); pscItemSchools = (scItem **)malloc(item1*sizeof(scItem)); if(pscItemSchools == NULL) { printf("Fehler bei der Speicherallocation! Programm wird abgebrochen\n"); exit(1); } for(iCount=0;iCount<item1;iCount++) { pscItemSchools[iCount] = (scItem*)malloc(1*sizeof(scItem)); if(pscItemSchools[iCount] == NULL) { printf("Fehler bei der Speicherallocation! Programm wird abgebrochen\n"); exit(2); } } pscItemEducation = (scItem **)malloc(item2*sizeof(scItem)); if(pscItemEducation == NULL) { printf("Fehler bei der Speicherallocation! Programm wird abgebrochen\n"); exit(3); } for(iCount=0;iCount<item2;iCount++) { pscItemEducation[iCount] = (scItem*)malloc(1*sizeof(scItem)); if(pscItemEducation[iCount] == NULL) { printf("Fehler bei der Speicherallocation! Programm wird abgebrochen\n"); exit(2); } } pscItemJobs = (scItem **)malloc(item3*sizeof(scItem)); if(pscItemJobs == NULL) { printf("Fehler bei der Speicherallocation! Programm wird abgebrochen\n"); exit(1); } for(iCount=0;iCount<item3;iCount++) { pscItemJobs[iCount] = (scItem*)malloc(1*sizeof(scItem)); if(pscItemJobs[iCount] == NULL) { printf("Fehler bei der Speicherallocation! Programm wird abgebrochen\n"); exit(2); } } for(iCount=0;iCount<3;iCount++) { pcSkills[iCount] = (char*)malloc(length4*sizeof(char)); if(pcSkills[iCount] == NULL) { printf("Fehler bei der Speicherallocation! Programm wird abgebrochen\n"); exit(2); } } iCount=0; cAbort='0'; printf("\n\n%s\n\n",pszh2); do { printf("%s",pszBegMonth); fgets(cBuffer1,length1,stdin); fflush(stdin); printf("%s",pszBegYear); fgets(cBuffer2,length2,stdin); fflush(stdin); printf("%s",pszEndMonth); fgets(cBuffer3,length1,stdin); fflush(stdin); printf("%s",pszEndYear); fgets(cBuffer4,length2,stdin); fflush(stdin); printf("%s",pszDescription); fgets(cBuffer5,lengthmax,stdin); fflush(stdin); strcpy(pscItemSchools[iCount]->sccMonthBeg, cBuffer1); strcpy(pscItemSchools[iCount]->sccYearBeg, cBuffer2); strcpy(pscItemSchools[iCount]->sccMonthEnd, cBuffer3); strcpy(pscItemSchools[iCount]->sccYearEnd, cBuffer4); strcpy(pscItemSchools[iCount]->sccText, cBuffer5); iCount++; iSchCount++; printf("Weiter ?\n"); cAbort=getchar(); } while(iCount<item1 && cAbort!='a'); //printf("%s",pscItemSchools[0]->sccMonthBeg); iCount=0; cAbort='0'; printf("\n\n%s\n\n",pszh3); do { printf("%s",pszBegMonth); fflush(stdin); fgets(cBuffer1,length1,stdin); printf("%s",pszBegYear); fflush(stdin); fgets(cBuffer2,length2,stdin); printf("%s",pszEndMonth); fflush(stdin); fgets(cBuffer3,length1,stdin); printf("%s",pszEndYear); fflush(stdin); fgets(cBuffer4,length2,stdin); printf("%s",pszDescription); fflush(stdin); fgets(cBuffer5,lengthmax,stdin); strcpy(pscItemEducation[iCount]->sccMonthBeg, cBuffer1); strcpy(pscItemEducation[iCount]->sccYearBeg, cBuffer2); strcpy(pscItemEducation[iCount]->sccMonthEnd, cBuffer3); strcpy(pscItemEducation[iCount]->sccYearEnd, cBuffer4); strcpy(pscItemEducation[iCount]->sccText, cBuffer5); iCount++; iEduCount++; printf("Weiter ?\n"); cAbort=getchar(); } while(iCount<item2 && cAbort!='a'); iCount=0; cAbort='0'; printf("\n\n%s\n\n",pszh4); do { printf("%s",pszBegMonth); fflush(stdin); fgets(cBuffer1,length1,stdin); printf("%s",pszBegYear); fflush(stdin); fgets(cBuffer2,length2,stdin); printf("%s",pszEndMonth); fflush(stdin); fgets(cBuffer3,length1,stdin); printf("%s",pszEndYear); fflush(stdin); fgets(cBuffer4,length2,stdin); printf("%s",pszDescription); fflush(stdin); fgets(cBuffer5,lengthmax,stdin); fflush(stdin); strcpy(pscItemJobs[iCount]->sccMonthBeg, cBuffer1); strcpy(pscItemJobs[iCount]->sccYearBeg, cBuffer2); strcpy(pscItemJobs[iCount]->sccMonthEnd, cBuffer3); strcpy(pscItemJobs[iCount]->sccYearEnd, cBuffer4); strcpy(pscItemJobs[iCount]->sccText, cBuffer5); iCount++; iJobCount++; printf("Weiter ?\n"); cAbort=getchar(); } while(iCount<item3 && cAbort!='a'); for(iCount=0;iCount<3;iCount++) { printf("\n\n%s",cSkills[iCount]); fflush(stdin); fgets(pcSkills[iCount],length4,stdin); } fpout = fopen("C:/Dokumente und Einstellungen/Damir/Eigene Dateien/Ctemp/lebenslauf.html","w"); if(fpout==NULL) { fprintf(stderr,"Oeffnen nicht moeglich\n"); return 1; } fputs(pszHtmlHead,fpout); fprintf(fpout,"<body style='font-family:Garamond; font-size:11pt'>\n" "<h1 style='text-align:center'>Lebenslauf</h1>\n" "<table width='1000px'>\n" "<tr>\n" "<td colspan='3'style='background-color:rgb(192,192,192)'><h2>%s</h2></td>\n" "</tr>\n" "<tr>\n" ,pszh1); fprintf(fpout,"<td> %s</td>\n", pszName); fprintf(fpout,"<td>%s %s </td>\n", cName,cFirstName); fputs("<td rowspan='9'><img src='pic.gif' alt='Bewerbungsbild'</td>\n" "</tr>\n" "<tr>\n",fpout); fprintf(fpout,"<td> %s</td>\n", pszStreet); fprintf(fpout,"<td> %s </td>\n", cStreet); fputs("</tr>\n" "<tr>\n",fpout); fprintf(fpout,"<td> %s</td>\n", pszZipCity); fprintf(fpout,"<td> %s %s</td>\n", cZip,cCity); fputs("</tr>\n" "<tr>\n",fpout); fprintf(fpout,"<td> %s</td>\n", pszTelephone); fprintf(fpout,"<td> %s </td>\n", cTelephone); fputs("</tr>\n" "<tr>\n",fpout); fprintf(fpout,"<td> %s</td>\n", pszBirthDate); fprintf(fpout,"<td> %s</td>\n", cBirthDate); fputs("</tr>\n" "<tr>\n",fpout); fprintf(fpout,"<td> %s</td>\n", pszBirthPlace); fprintf(fpout,"<td> %s</td>\n", cBirthPlace); fputs("</tr>\n" "<tr>\n",fpout); fprintf(fpout,"<td> %s</td>\n", pszPstatut); fprintf(fpout,"<td> %s</td>\n", cPstatut); fputs("</tr>\n" "<tr>\n",fpout); fprintf(fpout,"<td> %s</td>\n", pszCitizen); fprintf(fpout,"<td> %s</td>\n", cCitizen); fputs("</tr></table>\n",fpout); fprintf(fpout,"%s",pszTableMargin); fprintf(fpout,"<table width='1000px'>\n" "<tr>\n" "<td colspan='3'style='background-color:rgb(192,192,192)'><h2>%s</h2></td>\n" "</tr>\n" ,pszh2); for(iCount=0;iCount<iSchCount;iCount++) { fprintf(fpout,"<tr>\n<td>%s/%s - %s/%s</td>\n<td>%s</td>\n</tr>",pscItemSchools[iCount]->sccMonthBeg,pscItemSchools[iCount]->sccYearBeg, pscItemSchools[iCount]->sccMonthEnd,pscItemSchools[iCount]->sccYearEnd,pscItemSchools[iCount]->sccText); } fputs("</table>\n",fpout); fprintf(fpout,"%s",pszTableMargin); fprintf(fpout,"<table width='1000px'>\n" "<tr>\n" "<td colspan='2'style='background-color:rgb(192,192,192)'><h2>%s</h2></td>\n" "</tr>\n" ,pszh3); for(iCount=0;iCount<iEduCount;iCount++) { fprintf(fpout,"<tr>\n<td>%s/%s - %s/%s</td>\n<td>%s</td>\n</tr>",pscItemEducation[iCount]->sccMonthBeg,pscItemEducation[iCount]->sccYearBeg, pscItemEducation[iCount]->sccMonthEnd,pscItemEducation[iCount]->sccYearEnd,pscItemEducation[iCount]->sccText); } fputs("</table>\n",fpout); fprintf(fpout,"%s",pszTableMargin); fprintf(fpout,"<table width='1000px'>\n" "<tr>\n" "<td colspan='2'style='background-color:rgb(192,192,192)'><h2>%s</h2></td>\n" "</tr>\n" ,pszh4); for(iCount=0;iCount<iJobCount;iCount++) { fprintf(fpout,"<tr>\n<td>%s/%s - %s/%s</td>\n<td>%s</td>\n</tr>\n",pscItemJobs[iCount]->sccMonthBeg,pscItemJobs[iCount]->sccYearBeg, pscItemJobs[iCount]->sccMonthEnd,pscItemJobs[iCount]->sccYearEnd,pscItemJobs[iCount]->sccText); } fputs("</table>\n",fpout); fprintf(fpout,"%s",pszTableMargin); fprintf(fpout,"<table width='1000px'>\n" "<tr>\n" "<td colspan='2'style='background-color:rgb(192,192,192)'><h2>%s</h2></td>\n" "</tr>\n" ,pszh5); for(iCount=0;iCount<3;iCount++) { fprintf(fpout,"<tr>\n<td>%s<td>\n<td>%s</td>\n</tr>\n",cSkills[iCount],cSkill[iCount]); } fputs("</table></body>\n" "</html>\n" ,fpout); for(iCount=0;iCount<item1;iCount++) { free(pscItemSchools[iCount]); } free(pscItemSchools); for(iCount=0;iCount<item2;iCount++) { free(pscItemEducation[iCount]); } free(pscItemEducation); for(iCount=0;iCount<item3;iCount++) { free(pscItemJobs[iCount]); } free(pscItemJobs); for(iCount=0;iCount<3;iCount++) { free(pcSkills[iCount]); } fclose(fpout); return 0; }
-
ach ja habe vergessen ne Markierung zu setzen
also wenn es an den Block geht, dann machts päng
for(iCount=0;iCount<3;iCount++) { printf("\n\n%s",cSkills[iCount]); fflush(stdin); fgets(pcSkills[iCount],length4,stdin); }
-
fprintf(fpout,"<tr>\n<td>%s<td>\n<td>%s</td>\n</tr>\n",cSkills[iCount],cSkill[iCount]);
da muss als zweites Argument pcSill[iCount] rein. Aber das wird nicht der Fehler sein