DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   fstream problem.. (http://www.daniweb.com/forums/thread159046.html)

rumencho Nov 23rd, 2008 6:11 am
fstream problem..
 
Hi all. I want to learn how to manipulate .txt files through C++ program. I want to be able to search trough chars in .txt file,sort them etc. I think the best way for this,should be,loading .txt file in char array and then manipulating the elements. but I don't know how..




#include <iostream.h>
#include <fstream.h>
#include <string.h>
int main()

{

              char array[100000];
       
        fstream ru ("c:\\ruru.txt",ios::out);

        for (int i=0;i<10000;i++)
       
        {  ru << "rordo"; }  // write to file

                array[ ] =ru  //obviously this doesn't work


return 0;
}

cikara21 Nov 23rd, 2008 8:46 am
Re: fstream problem..
 
Simple example..
Open a files,
while ch = getc(files)
{
  ary[i] = ch << 2;
  display ary[i]
}

twomers Nov 23rd, 2008 10:01 am
Re: fstream problem..
 
You can do this quite elegantly with the STL... might be advanced, I dunno.
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>

bool char_sort_function( char a, char b ) {
  return a>b;
}

int main( int argc, char *argv[] ) {

  // File contains: This is a test!
  std::ifstream in( "test.txt", std::ios::binary );

  if ( in ) {
    std::vector<char> vchar;

    // Read characters into vector
    vchar.insert( vchar.end(), std::istream_iterator<char>(in), std::istream_iterator<char>() );

    // Sort them
    std::sort( vchar.begin(), vchar.end(), char_sort_function );

    // Prints characters
    std::copy( vchar.begin(), vchar.end(), std::ostream_iterator<char>(std::cout, "\n") );
  }

  return 0;
}

Edit: Note, this ignores whitespace.
Also change
#include <iostream.h>
#include <fstream.h>
#include <string.h>
to
#include <iostream>
#include <fstream>
#include <string>

ArkM Nov 23rd, 2008 10:07 am
Re: fstream problem..
 
Sort chars? What for?!..
Can you explain what do you want to do with a file contents?

rumencho Nov 23rd, 2008 10:13 am
Re: fstream problem..
 
]it doesn't work with getc, it says "getc- undeclared identifier" btw I'm using visual c++ compiler

I just want to take char from .txt file,and save it in char variable..or in array


I have also tried this way:
#include <iostream.h>
#include <fstream.h>

int main()
{
        fstream rufile ("c:\\ruru.txt",ios::in);
                char c;
        c= rufile.get (rufile,2);
        return 0;
}
but the compiler says thar it cannot convert parameter 2 from 'class fstream' to 'char *'

ArkM Nov 23rd, 2008 10:58 am
Re: fstream problem..
 
Quote:

Originally Posted by rumencho (Post 742697)
]it doesn't work with getc, it says "getc- undeclared identifier" btw I'm using visual c++ compiler

I just want to take char from .txt file,and save it in char variable..or in array

I have also tried this way:
#include <iostream.h>
#include <fstream.h>

int main()
{
        fstream rufile ("c:\\ruru.txt",ios::in);
                char c;
        c= rufile.get (rufile,2);
        return 0;
}
but the compiler says thar it cannot convert parameter 2 from 'class fstream' to 'char *'

The compiler said that it can't convert parameter 1 (first, not second)!
if (rufile.get(c)) {
    // OK, you get this char
} else {
    // end of file or i/o error
}
Set cursor on a function name and press F1. Look at the function prototype. Do you want ask daniweb for every new C++ function parameters?


All times are GMT -4. The time now is 4:15 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC