[C++] Wczytywanie danych z pliku
Ostatnio zmodyfikowano 2010-06-12 14:01
adaxks Temat założony przez niniejszego użytkownika |
[C++] Wczytywanie danych z pliku » 2010-06-12 12:35:36 Mój problem dotyczy wczytywania słów z pliku. Kod który ułożyłem. #include<stdio.h> #include<string> #include <fstream> using namespace std; int main() { char zmienne[ 200 ]; { int a; ifstream plik( "slownik.txt" ); for( a = 0; a < 200; ++a ) plik >> zmienne[ a ]; printf( "%c", zmienne[ a ] ); } getchar(); } Wyświetla pojedynczą literę "ś" a w slowniku.txt jest cały wyraz. Gdzie popełniam błąd? Jak powinien wyglądać kod który wczytuje kolejne słowa (zakończone enterem czyli wiersze) do tablicy? I czy jest możliwość aby program wczytywał każdą literę wiersza do tablicy a nie całe słowa? jestem jeszcze zielony w tych tematach, więć proszę o obszerne wyjaśnienie. nie odsyłajcie mnie do samouczków bo już je widziałem. |
|
ison |
» 2010-06-12 12:40:57 char to jest pojedynczy znak, nie możesz całego slowa podstawić pod jeden znak typu char. Jeśli chcesz wczytać całe słowa to musisz wczytywać tablice charów. #include <cstdio> #include <fstream> #include <conio.h>
using namespace std;
char zmienne[ 200 ][ 200 ];
int main() { ifstream plik( "slownik.txt" ); for( int a = 0; a < 200; ++a ) { plik >> zmienne[ a ]; printf( "%s\n", zmienne[ a ] ); } _getch(); }
tym sposobem co wczytujesz - program nie odróżnia spacji od entera, jak napotka którekolwiek z wyżej wymienionych to wczytuje nowe słowo (da się to zmienić, nigdy się nie zastanawiałem jak, ale pewnie się da :p) apropo błędów w twoim programie to zwyczajnie po forze nie miałeś klamry która by obejmowała i wczytywanie znaku i od razu wypisywanie go (oprócz tego wcześniej wspomnianie to że deklarowałeś tablicę w funkcji i była zapełniona 'dziwnymi' znaczkami ;)) |
|
adaxks Temat założony przez niniejszego użytkownika |
» 2010-06-12 13:46:21 Wielkie dzięki wszystko działa jak należy.
Mam jeszcze pytanie trochę z innej beczki. muszę napisać jeszcze algorytm poprawiający literówki w słowach (litera za dużo/za mało/ inna litera np dla kot może być krot, ot, kut)
Problem polega na tym że o ile "kut" mogłyb zamienić przyrównywaniem każdej litery i większością poprawnych liter wybrać kot to dla "krot" i "ot" nie mam żadnego pomysłu. |
|
filipesq |
» 2010-06-12 14:01:20 Załóż inny temat... |
|
« 1 » |