Just nu i M3-nätverket
Jump to content

hjälp med c++ program.


x20

Recommended Posts

Har skrivet ett program där man kopierar en existerande fil till en ny fil där innhållet i käll filen kopieras.

Nu till min fråga jag vill att när användaren skriver in en fil som inte finns så skall programmet säga ifrån och avslutas hur gör man detta???

Desperat behov av hjälp.

Så här ser koden ut:

 

 

#include <iostream.h>

#include <fstream.h>

#include <iomanip.h>

 

void main (void)

{

char c;

char namn[100];

cout<<"Vilken fil skall kopieras?";

cin>>setw(100)>>namn;

ifstream f1(namn);

if(!f1)

{

cout<<"Filen kan inte öppnas";

}

cout<<" Kopians namn?";

cin>>setw(100)>>namn;

ofstream f2(namn);

if(!f2)

{

cout<<"Filen kan ej skapas";

}

while (f1.get©)

f2.put©;

}

 

Poäng för bra svar!

 

Link to comment
Share on other sites

I kollen du gör

ifstream f1(namn);
if(!f1)
{
cout<<"Filen kan inte öppnas";
}

Kan du väl helt enkelt bara skriva

 cout<<"Nehejdu !";
exit(nåtfelnummer);

Fungerar i C iaf.

 

Annars får du väl använda någon if exist fil ...

 

 

/TN

- http://www.quoteland.com/

 

Link to comment
Share on other sites

Jo exit() ska väl fungera ?

<edit>Aha, inkludera stdlib.h eller om det är stdio.h </edit>

 

Om inte det fungerar så lägg in koden som ska köras om filen öppnades i if-satsen då.

if(f1)
{
cout<<" Kopians namn?";
cin>>setw(100)>>namn;
ofstream f2(namn);
if(!f2)
{
 cout<<"Filen kan ej skapas";
}
while (f1.get(c))
 f2.put(c);
} else {
cout<<"Nehejdu det gick inte att öppna den filen, kolla att den finns.";
}

Då ramlar programmet ut automatiskt.

 

/TN

- http://www.quoteland.com/

 

[inlägget ändrat 2003-03-05 18:59:53 av Don Tomas]

[inlägget ändrat 2003-03-05 19:01:46 av Don Tomas]

Link to comment
Share on other sites

Hum.

 

Borde det inte vara

#include <iostream>

och så vidare utan .h om det ska vara C++?

 

Vidare, för att avsluta - gör en return?

 

int main(void) {

 

if(!f1) {

cout << "filen kan inte öppnas" << endl;

return 0;

}

else {

yada

yada

}

 

return 0;

}

 

Annars är jag helt med på Don Tomas förslag på ett annat flöde så du slipper avbryta mitt i en sats.

 

.wey

[inlägget ändrat 2003-03-05 19:09:17 av Weyland]

Link to comment
Share on other sites

Tja, getch(); på slutet typ? Med en uppmaning om att trycka på någon tangent för att avsluta...

 

--

.Wey

 

Future Hero Next Generati0n

 

Link to comment
Share on other sites

Är jag osynlig eller? Vad är det för fel på return? ;p

 

--

.Wey

 

Future Hero Next Generati0n

 

Link to comment
Share on other sites

Borde det inte vara

#include <iostream>

och så vidare utan .h om det ska vara C++?

Är det inte så att i C++ kan man göra allt man kan göra i C och en hel del till ?

Och då följdaktligen kan skriva #include <iostream.h>

?

 

/TN

-

 

Link to comment
Share on other sites

Är det inte så att i C++ kan man göra allt man kan göra i C och en hel del till ?

Och då följdaktligen kan skriva #include <iostream.h>

 

Man ska inte inkludera h-filer avsedda för c-libs om man vill använda c++-klasser, det blir problem då förr eller senare..

 

http://www.cplusplus.com/doc/ansi/hfiles.html

 

http://c.ittoolbox.com/documents/document.asp?i=1726

 

Varför använda en 'obsolete' include bara för att det går, när det inte är rätt? ;)

 

.wey

[inlägget ändrat 2003-03-08 00:46:22 av Weyland]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...