Just nu i M3-nätverket
Gå till innehåll

hjälp med c++ program.


x20

Rekommendera Poster

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!

 

Länk till kommentar
Dela på andra webbplatser

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/

 

Länk till kommentar
Dela på andra webbplatser

Det verkar inte fungera med exit men vad är kommandot för att avsluta ett program direkt i borland c++?

 

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

Jo då det fungerar men går det att ha någon typ av timer så att användaren hinner se texten?

 

Länk till kommentar
Dela på andra webbplatser

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

 

--

.Wey

 

Future Hero Next Generati0n

 

Länk till kommentar
Dela på andra webbplatser

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

 

--

.Wey

 

Future Hero Next Generati0n

 

Länk till kommentar
Dela på andra webbplatser

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

-

 

Länk till kommentar
Dela på andra webbplatser

Ä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]

Länk till kommentar
Dela på andra webbplatser

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

Tjaa, säg det.

Om man söker på http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=include+exit%28+c%2B%2B&btnG=Google+Search

så är alla (har inte kollat alla) träffar med include .h

 

 

/TN

- Brandvägg borde väl egentligen kallas Portvakt ?

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...