Användarprofil

Uppgifter
Användarnamn
Email
Besök -
Hemsida Ingen
Plats (stad)
Senaste besök 01:00 - 1:a Januari 1970
Poster i forumet
Varningar
Grupp
Medlem sedan 01:00 - 1:a Januari 1970
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

fildelning
Det här har jag gjort;

Programmet ska hantera både en binärfil och en textfil. Programmet uppmanar först användaren att mata in valfri text (textfil). Inmatningen avslutas med ENTER. Därefter ska användaren mata in ett antal positiva heltal som ska läsas in till en binärfil. Inmatningen ska avslutas när användaren skriver in ett negativt tal. När inmatningen är klar skrivs textfilen ut och därefter skrivs binärfilen ut.

Det här är problemet som jag behöver hjälp med;

Använd den del av ovanstående uppgift som hanterar binärfilen. När inmatningen är klar ska man kunna söka efter ett tal i filen. Programmet ska även söka igenom filen efter det största respektive minsta talen och skriva ut dessa. Dessutom skall man när man startar programmet få frågan om man vill tömma filen innan man startar en ny inmatning.

Och så här långt har jag kommit;

#include<fstream.h>
#include<iostream.h>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iomanip.h>


/* Filhantering
Nedanstående program skapar en binärfil där man matar in tecken för tecken.
Inmatningen avbryts om man matar in ett !. Därefter uppmanas användaren att
mata in ett tecken. Programmet söker då igenom filen och meddelar om tecknet
finns i filen eller inte. Därefter skrivs filens innehåll ut med fem tecken
per rad.
*/


main()
{
char text[100];
int a=0,b=0,flagga=0,r=13; //Lite variabler
int heltal; //variabel som hanterar inläsningen och skrivning till filen
int letaheltal; //variabel för att söka heltal
//Skapa en ström ,"minstrom",för både läsning och skrivning , knyt den till
//filen heltal.dat.Lägg till nya bokstäver längst bak.
// Låt det vara en binärfil.
ofstream skriv("heltal.txt",ios::trunc|ios::binary);
if(!skriv) //kontrollera om filen kunde öppnas
{
cout<<"Fel vid filöppning"; //skriv felmeddelande
getch();
exit(1); //Hoppa ur programmet

}
gotoxy(10,5);
cout<<"Mata in en heltal: (avsluta med ett netativt tal) : "; //inmatning till variabel
cin>>heltal; //som används för läsning/
gotoxy(51,5); //skrivning till fil
clreol(); // sudda inmatat tecken
while(heltal>0)
{
skriv.write((char*)&heltal,sizeof(int)); //skriv en heltal på filen
gotoxy(10,5);
cout<<"Mata in ett heltal: (avsluta med ett negativt tal) : ";
cin>>heltal;

gotoxy(51,5);
clreol();
}
skriv.close(); //Stäng filen
gotoxy(10,7);
cout<<"Skriv den heltal du vill leta efter: ";
cin>>letaheltal;
ifstream las;
//Öppna filen och ställ filpekaren i början obs inget ios::app
las.open("heltal.txt",ios::binary);
if(!las)
{
cout<<"Fel vid filöppning";
getch();
exit(1);

}
las.read((char*)&heltal,sizeof(heltal)); //läs från filen till heltal
while(!las.eof()) //Håll på till slutet av filen
{
if(heltal==letaheltal)
{
gotoxy(10,10);
cout<<"heltalen finns i filen!!";
flagga=1;
break; //Hoppa ur loopen om vi hittar heltalen
}

las.read((char*)&heltal,sizeof(heltal));
}
las.clear(); //nollställ alla flaggor så att minstrom kan användas
if(flagga==0) //om man läser EOF-tecken ställs flagga som måste nollställas
{
gotoxy(10,10);
cout<<"heltalen finns inte i filen!!";
}
gotoxy(10,11);
cout<<"Har kommer en utskrift av filens innehall!!";
las.seekg(0,ios::beg); //Ställ filpekaren i början på filen

gotoxy(10,r);
las.read((char*)&heltal,sizeof(heltal)); //Läs en gång utanför slingan

while(!las.eof()) //Håll på till slutet av filen
{

a++; //antal bokstäver som lästs
b=a%5; // b blir =0 för var femte heltal
//vi får då fem bokstäver per rad i utskriften
cout<<heltal<<" ";

if(b!=0)
;
else
gotoxy(10,++r);

las.read((char*)&heltal,sizeof(heltal)); //Läs igen
}
las.clear();
las.close(); //Stäng filen
skriv.open("text.txt");
if(!skriv)
{
cout<<"Fel vid filöppning";
getch();
exit(1);

}
cin.ignore(1000,'n');

cout<<"Skriv en mening och avsluta med enbart enter: ";
cin.getline(text,100);
while(text[0]!='�')

{
skriv<<text;
cout<<"Skriv en mening och avsluta med enbart enter: ";
cin.getline(text,100);
}
skriv.close();
las.open("text.txt");
if(!las)
{
cout<<"Fel vid filöppning";
getch();
exit(1);

}
las.getline(text,100);
while(!las.eof())
{
cout<<text;
las.getline(text,100);
}
las.close();
getch();
return 0;
}
/*while(text[0]!='�')
{
skriv<<text;
clrscr();
cin.getline(text,100);
} */


Postad 13:59 - 26:e Augusti 2009

Skicka meddelande
Läs s blog