Nybörjarfråga om C++ [LÖST]
Postat: 12 jan 2008, 22:35
Tänkte börja testa lite C++ och har letat runt lite på nätet för att hitta några enkla exempel för inspiration. Just nu är det filhantering jag försöker lära mig, exempelvis.
Har installerat g++ 4.1.2-16ubuntu2 och dess beroenden. Min fråga är vad jag behöver mer. Verkar som om något väsentligt saknas, eftersom i stort sett samtliga enkla exempel jag provat ger många felmeddelanden vid kompilering. Kan väl ge ett exempel, annars blir detta kanske lite väl flummigt:
Kopierade följande text in i emacs, sparade, avslutade och kompilerade med g++ (vilket också får mig att tänka på att jag i början av 90-talet kompilerade C-kod direkt i emacs, men nu kommer jag inte på hur man gör det, men det går säkert att hitta på nätet hur man gör).
Så här ser programexemplet ut som jag snodde rakt av härifrån:
Så här ser det ut när jag försöker kompilera:
Har testat fler exempel, bland annat ett från en bok som jag råkar ha liggande, men får liknande felmeddelanden vad jag än testar, även när det gäller enkla "Hello world"-program.
Så förmodligen är det något jag behöver installera, eller?
Testade också att byta ut de första två raderna mot följande, vilket också misslyckades:
Fick nu följande felmeddelanden:
Med mina numera ruttnande kunskaper i C++ (kunskaper som alltid varit försvinnande små) inser jag ju att string.h eller något annatkanske inte finns i mitt system, så vad jag vill veta är hur jag får med allt man kan tänkas behöva genom att installera så få paket som möjligt... eller något ditåt. Andra tips är också välkomna. Håll i minnet att jag är nybörjare på detta, kanske rent av idiot.
Jag testade också med följande första tre rader:
De felmeddelanden jag då fick var följande:
Kan min senare tids programmering av OpenOffice.org-makron ha förstört mig..? Där är ju allting så enkelt och självklart och allt bara finns där från början, så att säga... Har kanske blivit bortskämd...
J.R.
Har installerat g++ 4.1.2-16ubuntu2 och dess beroenden. Min fråga är vad jag behöver mer. Verkar som om något väsentligt saknas, eftersom i stort sett samtliga enkla exempel jag provat ger många felmeddelanden vid kompilering. Kan väl ge ett exempel, annars blir detta kanske lite väl flummigt:
Kopierade följande text in i emacs, sparade, avslutade och kompilerade med g++ (vilket också får mig att tänka på att jag i början av 90-talet kompilerade C-kod direkt i emacs, men nu kommer jag inte på hur man gör det, men det går säkert att hitta på nätet hur man gör).
Så här ser programexemplet ut som jag snodde rakt av härifrån:
Kod: Markera allt
#include <fstream>
#include <string>
int main (int argc, char * argv[]) {
int Antal = 0;
string Ord;
// har vi tillräckligt parametrar?
if ( argc != 2 ) {
cout << "Fel antal parametrar!" << endl;
cout << "Användning: " << argv[0] << " filnamn" << endl;
exit ( EXIT_FAILURE );
}
// öppna en fil
ifstream Data ( argv[1] );
if ( ! Data ) {
// kunde inte öppna filen
cout << "Kunde inte öppna filen: " << argv[1] << endl;
exit ( EXIT_FAILURE );
}
// iterera över all ord i filen
while ( Data >> Ord ) {
// öka antalet lästa ord
Antal++;
}
// skriv ett svar
cout << "Läste " << Antal << " ord." << endl;
}
Kod: Markera allt
$ g++ Exempel.c++
Exempel.c++: In function "int main(int, char**)":
Exempel.c++:6: fel: "string" deklarerades inte i detta definitionsområde
Exempel.c++:6: fel: expected `;' before "Ord"
Exempel.c++:10: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:10: fel: "endl" deklarerades inte i detta definitionsområde
Exempel.c++:16: fel: "ifstream" deklarerades inte i detta definitionsområde
Exempel.c++:16: fel: expected `;' before "Data"
Exempel.c++:17: fel: "Data" deklarerades inte i detta definitionsområde
Exempel.c++:19: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:19: fel: "endl" deklarerades inte i detta definitionsområde
Exempel.c++:24: fel: "Data" deklarerades inte i detta definitionsområde
Exempel.c++:24: fel: "Ord" deklarerades inte i detta definitionsområde
Exempel.c++:30: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:30: fel: "endl" deklarerades inte i detta definitionsområde
$
Så förmodligen är det något jag behöver installera, eller?
Testade också att byta ut de första två raderna mot följande, vilket också misslyckades:
Kod: Markera allt
#include <iostream.h>
#include <fstream.h>
#include <string.h>
Kod: Markera allt
$ g++ Exempel.c++
I fil inkluderad från /usr/include/c++/4.1.3/backward/iostream.h:31,
från Exempel.c++:1:
/usr/include/c++/4.1.3/backward/backward_warning.h:32:2: varning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
Exempel.c++: In function "int main(int, char**)":
Exempel.c++:7: fel: "string" deklarerades inte i detta definitionsområde
Exempel.c++:7: fel: expected `;' before "Ord"
Exempel.c++:25: fel: "Ord" deklarerades inte i detta definitionsområde
$
Jag testade också med följande första tre rader:
Kod: Markera allt
#include <iostream>
#include <fstream>
#include <string>
Kod: Markera allt
$ g++ Exempel.c++
Exempel.c++: In function "int main(int, char**)":
Exempel.c++:7: fel: "string" deklarerades inte i detta definitionsområde
Exempel.c++:7: fel: expected `;' before "Ord"
Exempel.c++:11: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:11: fel: "endl" deklarerades inte i detta definitionsområde
Exempel.c++:17: fel: "ifstream" deklarerades inte i detta definitionsområde
Exempel.c++:17: fel: expected `;' before "Data"
Exempel.c++:18: fel: "Data" deklarerades inte i detta definitionsområde
Exempel.c++:20: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:20: fel: "endl" deklarerades inte i detta definitionsområde
Exempel.c++:25: fel: "Data" deklarerades inte i detta definitionsområde
Exempel.c++:25: fel: "Ord" deklarerades inte i detta definitionsområde
Exempel.c++:31: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:31: fel: "endl" deklarerades inte i detta definitionsområde
$
J.R.