Avatar billede Slettet bruger
10. maj 2006 - 17:05 Der er 15 kommentarer og
1 løsning

Fejl i koden - oprettelse og skrivning til fil

Hej eksperter!

Jeg har følgende kode, der skal kunne oprette en kalender i HTML-format ud fra brugerindtastede oplysninger. Dette er IKKE den færdige udgave.

Min kode er:

#include <cstdio>
#include <iostream.h> 
#include <stdlib.h>
#include <string>

#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <windows.h>
#include <sys/stat.h>
#include <io.h>

using namespace std;
         
int main()
{
    string  filePath;
    string  fileName;
    string  fullPath;
    string  content;
   
    string  monthName;
    int      totalDays;
    string  firstWeekDay;
   
    int i;
    int j;

    cout << "interAction\nCalendar 1.1 (DA)\n\nIndtast sti til oprettelse af fil:";
    getline(cin, filePath);
    cout << "Indtast kommende filnavn:";
    getline(cin, fileName);
    cout << "Intast månedens navn:";
    getline(cin, monthName);
    cout << "Indtast antal dage i måneden:";
    getline(cin, totalDays);   
    cout << "Indtast første ugedag i måneden::";
    getline(cin, firstWeekDay);   
    cout << "\nGenererer indhold...";
    content = "<TABLE><TR><TD>Charlotte</TD><TD>Bent</TD><TD>Lars</TD><TD>Toke</TD></TR>";
    for (i = 0; i < totalDays; i ++)
    {
        content = content + "<TR>";
        for (j = 0; j < 4; j ++)
        {
            content = content + "<TD width=100>" + i + "</TD>";
        }
        content = content + "</TR>";
    }
    fullPath = filePath + fileName + ".html";
    cout << "Opretter filen '" + fullPath + "'...";
    ofstream f(fullPath.c_str());
    //FILE *fp;
    //fp = fopen(sti.c_str(), "w");
    cout << "\nSkriver '" + content + "'til '" + fullPath + "'...";
    f << indhold;
    //fprintf(fp, indhold.c_str());
    cout << "\nLukker '" + fullPath + "'...";
    f.close();
    //fclose(fp);
    cout << "\nSucces!\n\nTryk <ENTER> for at lukke dette vindue.";
    getchar();
}



Og compileren retunerer:

c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp: In function `int main()':
c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp:36: no matching function for call to `getline (_IO_istream_withassign &, int &)'
c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp:46: no match for `basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> > + int &'
c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp:56: `indhold' undeclared (first use this function)
c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp:56: (Each undeclared identifier is reported only once
c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp:56: for each function it appears in.)



Hvad er der galt?
Avatar billede arne_v Ekspert
10. maj 2006 - 17:13 #1
indhold er ikke erklaeret
Avatar billede arne_v Ekspert
10. maj 2006 - 17:18 #2
med hensyn til den anden fejl saa proev og erstat

#include <iostream.h>
#include <stdlib.h>


med

#include <ciostream>
#include <cstdlib>
Avatar billede arne_v Ekspert
10. maj 2006 - 17:23 #3
#include <iostream>
#include <cstdlib>
Avatar billede Slettet bruger
10. maj 2006 - 19:19 #4
Whups... Clumsy me...
Prøver lige!
Avatar billede Slettet bruger
10. maj 2006 - 19:21 #5
#include <cstdio>
#include <iostream> 
#include <cstdlib>
#include <string>

#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <windows.h>
#include <sys/stat.h>
#include <io.h>

using namespace std;
         
int main()
{
    string  filePath;
    string  fileName;
    string  fullPath;
    string  content;
   
    string  monthName;
    int      totalDays;
    string  firstWeekDay;
   
    int i;
    int j;

    cout << "interAction\nCalendar 1.1 (DA)\n\nIndtast sti til oprettelse af fil:";
    getline(cin, filePath);
    cout << "Indtast kommende filnavn:";
    getline(cin, fileName);
    cout << "Intast månedens navn:";
    getline(cin, monthName);
    cout << "Indtast antal dage i måneden:";
    getline(cin, totalDays);   
    cout << "Indtast første ugedag i måneden::";
    getline(cin, firstWeekDay);   
    cout << "\nGenererer indhold...";
    content = "<TABLE><TR><TD>Charlotte</TD><TD>Bent</TD><TD>Lars</TD><TD>Toke</TD></TR>";
    for (i = 0; i < totalDays; i ++)
    {
        content = content + "<TR>";
        for (j = 0; j < 4; j ++)
        {
            content = content + "<TD width=100>" + i + "</TD>";
        }
        content = content + "</TR>";
    }
    fullPath = filePath + fileName + ".html";
    cout << "Opretter filen '" + fullPath + "'...";
    ofstream f(fullPath.c_str());
    //FILE *fp;
    //fp = fopen(sti.c_str(), "w");
    cout << "\nSkriver '" + content + "'til '" + fullPath + "'...";
    f << content;
    //fprintf(fp, indhold.c_str());
    cout << "\nLukker '" + fullPath + "'...";
    f.close();
    //fclose(fp);
    cout << "\nSucces!\n\nTryk <ENTER> for at lukke dette vindue.";
    getchar();
}



Retunerer:

c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp: In function `int main()':
c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp:36: no matching function for call to `getline (_IO_istream_withassign &, int &)'
c:\docume~1\admini~1\mydocu~1\c__~1\projek~2\main.cpp:46: no match for `basic_string<char,string_char_traits<char>,__default_alloc_template<false,0> > + int &'
Avatar billede arne_v Ekspert
10. maj 2006 - 20:01 #6
foelgende compiler:

#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <string>

#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <windows.h>
#include <sys/stat.h>
#include <io.h>

using namespace std;
       
int main()
{
    string  filePath;
    string  fileName;
    string  fullPath;
    string  content;
 
    string  monthName;
    int      totalDays;
    string  firstWeekDay;
    string  temp;
 
    int i;
    int j;

    cout << "interAction\nCalendar 1.1 (DA)\n\nIndtast sti til oprettelse af fil:";
    getline(cin, filePath);
    cout << "Indtast kommende filnavn:";
    getline(cin, fileName);
    cout << "Intast månedens navn:";
    getline(cin, monthName);
    cout << "Indtast antal dage i måneden:";
    getline(cin, temp); // <-----
    totalDays = atoi(temp.c_str()); // <-----
    cout << "Indtast første ugedag i måneden::";
    getline(cin, firstWeekDay); 
    cout << "\nGenererer indhold...";
    content = "<TABLE><TR><TD>Charlotte</TD><TD>Bent</TD><TD>Lars</TD><TD>Toke</TD></TR>";
    for (i = 0; i < totalDays; i ++)
    {
        content = content + "<TR>";
        for (j = 0; j < 4; j ++)
        {
            content = content + "<TD width=100>" + (char)('0'+i) + "</TD>"; // <----
        }
        content = content + "</TR>";
    }
    fullPath = filePath + fileName + ".html";
    cout << "Opretter filen '" + fullPath + "'...";
    ofstream f(fullPath.c_str());
    //FILE *fp;
    //fp = fopen(sti.c_str(), "w");
    cout << "\nSkriver '" + content + "'til '" + fullPath + "'...";
    f << content;
    //fprintf(fp, indhold.c_str());
    cout << "\nLukker '" + fullPath + "'...";
    f.close();
    //fclose(fp);
    cout << "\nSucces!\n\nTryk <ENTER> for at lukke dette vindue.";
    getchar();
}
Avatar billede arne_v Ekspert
10. maj 2006 - 20:06 #7
men du skal nok kigge lidt paa stringstream fremfor de grimme hacks jeg har lavet
Avatar billede Slettet bruger
10. maj 2006 - 21:18 #8
Okaj, prøver lige!
Avatar billede Slettet bruger
10. maj 2006 - 21:21 #9
Faaaaaaaaaaaaantastisk, nu virker det!
Bare smid et svar!
Avatar billede arne_v Ekspert
10. maj 2006 - 22:40 #10
svar

men kig lige paa stringstream fordi det er den rigtige maade at goere nogle
af de ting paa
Avatar billede Slettet bruger
11. maj 2006 - 07:11 #11
Hmm, jeg skal prøve...
Men hvordan får jeg skrevet f.eks. værdien af i til filen?
Avatar billede Slettet bruger
11. maj 2006 - 07:12 #12
(Ud for hver række skal datoen stå)
Avatar billede arne_v Ekspert
12. maj 2006 - 02:16 #13
ikke forstået
Avatar billede Slettet bruger
14. maj 2006 - 17:00 #14
Jeg vil bare gerne vide, hvordan jeg får udskreet indholdet af en variabel (her 'i') til en fil. Ud for hver række (der består af fire felter vertikalt) skal datoen (som 'i' indikerer) stå.
Så hvordan for jeg sat indholdet af 'i' ind?

Eks.:
<TABLE>
    <TR>
        <TD>Dato</TD>
        <TD>Navn 1</TD>
        <TD>Navn 1</TD>
        <TD>Navn 3</TD>
        <TD>Navn 3</TD>
    </TR>
    <TR>
        <TD>1</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
    </TR>
    <TR>
        <TD>2</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
    </TR>
    <TR>
        <TD>(...)</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
    </TR>
    <TR>
        <TD>32</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
        <TD>[blankt felt]</TD>
    </TR>
</TABLE>
Avatar billede arne_v Ekspert
15. maj 2006 - 02:25 #15
jeg forstår det stadig ikke

beklager
Avatar billede Slettet bruger
22. maj 2006 - 19:31 #16
Nå... Skidt med det, laver kalenderen manuelt.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester