Wczytywanie liczb z pliku i zapis ich do innego w postaci słownej.
Ostatnio zmodyfikowano 2014-05-25 21:40
staho Temat założony przez niniejszego użytkownika |
Moje rozkimny » 2014-05-25 17:20:57 Cześć. Myślałem nad tym programem długo, w końcu zobaczyłem w podręczniku analogiczny (troszeczkę) program który miał zmieniać litery z dużych na małe (coś w tym stylu). Przepisałem go i usiłowałem nagiąć go pod swoje potrzeby. Niestety, brakuje mi "trochę" wiedzy i staję w kropce nie wiedząc gdzie iść dalej. Mam nadzieję że ktoś będzie mi w stanie powiedzieć gdzie popełniłem błędy, czego powinienem użyć w przypadku tego błędu. Łapcie tutaj mój nieszczęsny kod: #include <iostream> #include <fstream> #include <cstring> #include <cstdlib> #include <cstdio> void zamien( char * s );
int main() { int i; int s[ 3 ]; char a[ 255 ]; FILE * dane, * wynik; dane = fopen( "liczby.txt", "r" ); wynik = fopen( "slownie.txt", "w" ); i = 1; while( !feof( dane ) ) { itoa( i, a, 10 ); strcat( a, "-" ); fgets( s, 3, dane ); zamien( & s[ 0 ] ); strcat( a, s ); if( !feof( dane ) ) fputs( a, wynik ); i++; } }
void zamien( char * s ) { int i, k, z; k = strlen( s ); for( i = 0; i < k; i++ ) { z = s[ i ]; switch( z ) { case 0: a[ i ] = "zero"; break; case 1: a[ i ] = "jeden"; break; case 2: a[ i ] = "dwa"; break; case 3: a[ i ] = "trzy"; break; case 4: a[ i ] = "cztery"; break; case 5: a[ i ] = "piec"; break; case 6: a[ i ] = "szesc"; break; case 7: a[ i ] = "siedem"; break; case 8: a[ i ] = "osiem"; break; case 9: a[ i ] = "dziewiec"; break; } } }
|
|
Tebex |
» 2014-05-25 21:40:50 Bardzo mi się nudziło, i napisałem to: #include <iostream> #include <fstream> #include <string>
using namespace std;
int main() { fstream wej, wyj; char znak[ 255 ]; int wskaznik = 0, kopwskaznik; string slowo[ 255 ]; wej.open( "wej.txt", ios::in ); wyj.open( "wyj.txt", ios::trunc | ios::out ); while( wej.good() ) { wej >> znak[ wskaznik ]; wskaznik++; } wskaznik = 0; do { if( znak[ wskaznik ] == '1' ) slowo[ wskaznik ] = "Jeden"; else if( znak[ wskaznik ] == '2' ) slowo[ wskaznik ] = "Dwa"; else if( znak[ wskaznik ] == '3' ) slowo[ wskaznik ] = "Trzy"; else if( znak[ wskaznik ] == '4' ) slowo[ wskaznik ] = "Cztery"; else if( znak[ wskaznik ] == '5' ) slowo[ wskaznik ] = "Piec"; else if( znak[ wskaznik ] == '6' ) slowo[ wskaznik ] = "Szesc"; else if( znak[ wskaznik ] == '7' ) slowo[ wskaznik ] = "Siedem"; else if( znak[ wskaznik ] == '8' ) slowo[ wskaznik ] = "Osiem"; else if( znak[ wskaznik ] == '9' ) slowo[ wskaznik ] = "Dziewiec"; else if( znak[ wskaznik ] == '0' ) slowo[ wskaznik ] = "Zero"; else if( znak[ wskaznik ] == '.' ) { kopwskaznik = wskaznik; wskaznik = 0; break; } else slowo[ wskaznik ] = "Inny znak"; wskaznik++; } while( true ); while( wskaznik != kopwskaznik ) { wyj << slowo[ wskaznik ] << "\n"; wskaznik++; } return 0; }
Działa? Działa. Wiem, że można to dopracować, ale pisałem na szybko. |
|
1 « 2 » |