Forum: fstream

Forum huvudsida -> Programmering -> fstream

Sidor: 1

Till botten

prog_anton 13:30 - 15:e Oktober 2007 | Post #1
Medlem
Inlägg: 9


Skicka PM
Hejsan.

Jag stötte på ett litet problem när jag jobbade med fstream i fortsättningskursen för c++. Felet uppstår på rad 6 då det uppstår kompileringsfel. "ifstream undeclared first use of this function". Jag har följt guiden som det står men det blir ändå fel. Jag använder dev-cpp om det nu möjligen gör någon skillnad i detta fall. Någon som har någon idé?

Tack på förhand.

  1. #include<iostream>
  2. #include <fstream>
  3.  
  4. int main()
  5. {
  6. ifstream fil("temp.txt");
  7. string temp;
  8. if(fil)
  9. {
  10. fil >> temp;
  11. cout << "Hej " <<temp;
  12. exit(1); //Avslutar
  13. }
  14.  
  15. else
  16. {
  17. fil.close();
  18. ofstream fil2("temp.txt");
  19. cout << "Vad ar ditt namn:";
  20. getline(cin, temp); //alla tecken fram till ny rad
  21. fil2<<temp;
  22. }
  23.  
  24. cin.get();
  25. cin.get();
  26.  
  27. return 0;
  28.  
  29. }



-------------------------
"...There is only do"



Nissebosselasse 14:02 - 15:e Oktober 2007 | Post #2
Medlem
Inlägg: 490


Skicka PM
ifstream (och ofstream) ligger i namnrymden std. Du har kanske haft som vana innan att inleda varje program med using namespace std (vilket lägger allt i den namnrymden)? Det har du inte skrivit här, vilket är bra!
Prefixa ifstream med std:: för att ange att du vill använda ifstream-objektet i just den namnrymden.

Det vill säga:

std::ifstream fil;


-------------------------
http://pushingcows.se
Gula Nallen



prog_anton 14:33 - 15:e Oktober 2007 | Post #3
Medlem
Inlägg: 9


Skicka PM
Jadå! Nu blev det rätt, jag tackar.

-------------------------
"...There is only do"



GregerW 14:33 - 6:e Juni 2009 | Post #4
Medlem
Inlägg: 16


Skicka PM
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. ifstream fil ("temp.txt");
  9. string temp;
  10. if(fil.is_open())
  11. {
  12. fil>>temp;
  13. cout << "Hej " << temp;
  14. exit(1); //avslutar programmet
  15. }
  16. else
  17. {
  18. fil.close();
  19. ofstream fil2 ("temp.txt");
  20. cout << "Vad är ditt namn: ";
  21. getline(cin, temp); //tar alla tecken fram till nyrad, inklusive mellanslag.
  22. fil2<<temp;
  23. }
  24. return 0;
  25. }



Jag får error vid kompilering

C:\Dev-Cpp\Mina projekt\hej.cpp In function `int main()':
8 C:\Dev-Cpp\Mina projekt\hej.cpp variable `std::ifstream fil' has initializer but incomplete type
19 C:\Dev-Cpp\Mina projekt\hej.cpp variable `std::ofstream fil2' has initializer but incomplete type
C:\Dev-Cpp\Mina projekt\Makefile.win [Build Error] ["../Mina projekt/hej.o"] Error 1

Vad fattas?

-------------------------
-----------------------------
MVH
std::cout <<"Greger";



Nissebosselasse 14:53 - 6:e Juni 2009 | Post #5
Medlem
Inlägg: 490


Skicka PM
De där två klasserna ligger i filen fstream. Inkludera den i början av filen så fixar det sig.

Dessutom behöver du inkludera string, för annars vet den inte hur den ska tolka temp-variabeln (rad 9).



-------------------------
http://pushingcows.se
Gula Nallen



GregerW 15:50 - 6:e Juni 2009 | Post #6
Medlem
Inlägg: 16


Skicka PM
#include <fstream>
#include <string>

Tack så mycket!
Det hjälpte.
Men då är fortsättnings guiden fel, jag tog källkoden därifrån..




-------------------------
-----------------------------
MVH
std::cout <<"Greger";



Sidor: 1

Forum huvudsida -> Programmering -> fstream
Atom feed

Du får inte posta i den här tråden | Till toppen