Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zamiana słów miejscami

Ostatnio zmodyfikowano 2009-04-18 17:22
Autor Wiadomość
malan
» 2009-04-18 14:02:56
Mógłbyś podać zawartość pliku? Wystarczy jeden wiersz...
P-5814
GoldWolf
» 2009-04-18 16:59:01
Masz podpowiedz:
C/C++
#include <fstream>
#include <iostream>
#include <conio.h>
//---------------------------------------------------
int main() {
    using std::fstream;
    using std::cout;
   
    const char * plik = "plik.txt";
    const short wiersze = 100;
    const short wyraz = 30;
   
    char kolumna1[ wiersze ][ wyraz ];
    char kolumna2[ wiersze ][ wyraz ];
    short licznik = 0;
   
    ifstream strumien;
    strumien.open( plik, ios::in );
    if( strumien.is_open() ) {
        while( !strumien.eof() ) {
            strumien >> kolumna1[ licznik ];
            strumien >> kolumna2[ licznik ];
            licznik++;
        }
        strumien.close();
    }
    cout << "kolumna 1 " << kolumna1[ 1 ];
    cout << "\nkolumna 2 " << kolumna2[ 1 ] << "\n";
   
    getch();
    return 0;
}
//---------------------------------------------------

Jak to ci nie pomorze, to lepiej zacznij od nowa przerabiać kurs.....
P-5824
pekfos
» 2009-04-18 17:54:54
może to trochę leprze:
C/C++
#include <iostream>
#include <fstream>
#include <conio.h>
#define KOLUMNY 10
using namespace std;
ifstream plik;
const char * file = "plik.txt";
string kol1[ KOLUMNY ];
string kol2[ KOLUMNY ];
short licznik = 0;
int main()
{
    plik.open( file, ios::in );
    if( plik.is_open() )
    {
        while( !plik.eof() )
        {
            if( licznik == KOLUMNY ) break;
           
            getline( plik, kol1[ licznik ], ' ' );
            getline( plik, kol2[ licznik ] );
            licznik++;
        }
       
        cout << "kolumna 1.:" << endl;
        for( int a = 0; a < KOLUMNY; a++ ) cout << kol1[ a ] << endl;
       
        cout << "kolumna 2.:" << endl;
        for( int b = 0; b < KOLUMNY; b++ ) cout << kol2[ b ] << endl;
       
    } else
    {
        cout << "niema pliku!" << endl;
    }
    getch();
    return 0;
}

string zamiast char* i getline zamiast strumienia sprawa że program nieco trudniej rozwalić;]
P-5825
Riant
Temat założony przez niniejszego użytkownika
» 2009-04-18 18:33:22
malan przykładowa zawartość pierwszego wiersza:
slowo1 slowo2
Dzięki chłopaki za pomoc, o coś takiego mi chodziło. ;-)
Z tym już sobie poradzę.
P-5827
GoldWolf
» 2009-04-18 20:59:09
To fajnie! To jeszcze zamknij temat jak jesteś usatysfakcjonowany.
P-5831
manfred
» 2009-04-18 10:46:04
C/C++
#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

int main( int argc, char ** argv )
{
    argc--; argv++;
    if( argc < 2 )
    {
        cerr << "usage: " << argv[ - 1 ] << " <input> <output>";
        return 1;
    }
    vector < string > k1, k2;
    string str1, str2;
    ifstream infile( argv[ 0 ] );
    if( infile.fail() )
    {
        cerr << "zuo przyszlo i pliku ni ma: " << argv[ 0 ];
        return 1;
    }
    while( infile.good() )
    {
        infile >> str1;
        if( infile.good() )
             infile >> str2;
       
        k1.push_back( str2 );
        k2.push_back( str1 );
    }
    ofstream outfile( argv[ 1 ] );
    if( outfile.fail() )
    {
        cerr << "zuo przyszlo i zapisac nie dalo";
        return 1;
    }
    for( vector < string >::size_type i = 0; i < k1.size() && i < k2.size(); i++ )
    {
        outfile << k1[ i ] << '\t' << k2[ i ] << '\n';
    }
    return 0;
}
P-18815
manfred
» 2009-04-18 12:01:04
Nie znam vector...
To co za problem się nauczyć?
P-18816
manfred
» 2009-04-18 16:31:26
Oczywiście że się da bez vectora, wystarczy umiejętnie użyć getline.
P-18818
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona