Czytanie tekstu[C++]

S3
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam problem. Chce pisać jakiś tekst, a program ma go czytać znak po znaku. Jednak gdy wpisuje jakieś słowo to program czyta tylko ostatnią literę danego słowa. Dla przykładu napiszę "dom" a on czyta "m". Pilnie potrzebuję pomocy. Z góry dzięki :)

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

A nie łaska pokazać nam JAK ten tekst czytasz?

S3
  • Rejestracja: dni
  • Ostatnio: dni
0

sporo tego jest więc pokaże część:

Kopiuj
 

char tekst;
tekst = getch();
if(tekst == 'a')
{
sndPlaySound("a.wav", SND_ASYNC); system("cls"); czytacz();
}
if(tekst == 'b')
{
sndPlaySound("b.wav", SND_ASYNC); system("cls"); czytacz();
}
if(tekst == 'c')
{
sndPlaySound("c.wav", SND_ASYNC); system("cls"); czytacz();
}
if(tekst == 'd')
{
sndPlaySound("d.wav", SND_ASYNC); system("cls"); czytacz();
}
if(tekst == 'e')
{
sndPlaySound("e.wav", SND_ASYNC); system("cls"); czytacz();
}

Kopiuj
 

Zrobiłem tak bo całe wyrazy nie działąją czyta tylko ostatnią literę.

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
0

LoL perełka jak dla mnie xD

  • Rejestracja: dni
  • Ostatnio: dni
0

genialne na swój sposób

S3
  • Rejestracja: dni
  • Ostatnio: dni
0

a macie pomysł żeby czytało cały tekst? Pls pomóżcie ja już nie daje rady. Jak wpisuje tekst i karze potem czytać to czyta ostatnią literę

  • Rejestracja: dni
  • Ostatnio: dni
0

jak już się z kogoś śmiejecie to powiedźcie chociaż co jest źle,

wczytujesz znak a nie tekst, (zamiast char musisz użyć stringa )to po pierwsze, a po drugie to chyba w ogóle nie wiesz o co chodzi bo te ify sugerują że powinieneś wczytywać jeden znak a nie tekst.

aurel
  • Rejestracja: dni
  • Ostatnio: dni
0

O mamuniu, pikne! oO

Kopiuj
string tekst;
cin >> tekst;
sndPlaySound(tekst + ".wav", SND_ASYNC); system("cls"); czytacz();

nie lepiej...?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Perełka ?

S3
  • Rejestracja: dni
  • Ostatnio: dni
0

Ten twój kod też coś nie działa, wyświetla się:
cannot convert std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to const CHAR*' for argument 1' to BOOL sndPlaySoundA(const CHAR*, UINT)'

Śmiejecie się ze mnie że to niby takie proste, a na razie nikt z was tego nie zrobił. Jak to takie proste to podajcie mi kod. Bo ten co kolega wyżej podał nie wiele dał bo wyskakuje od groma błędów. Sami kiedyś zaczynaliście i ja dopiero początkuje,na razie mam 15 lat i dlatego piszę w newbie, a niby tacy mądrzy jesteście se jaja robicie to dajcie chociaż odpowiedź na moje pytanie

TK
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
#include <iostream>
#include <string>

using std::cout;
using std::cin;
using std::string;

void funkcja(const char * const a)
{
	cout << a << "\n";
}

int main(void)
{
	string text;
	cin >> text;
	
	funkcja((text+".wav").c_str());

	return 0;
}

Tylko wywolaj to play, a nie funkcje...

S3
  • Rejestracja: dni
  • Ostatnio: dni
0

wyświetla się ten sam błąd co wyżej pisałem

S3
  • Rejestracja: dni
  • Ostatnio: dni
0

wg ciebie tak powinno być??

#include <iostream>
#include <string>
#include <windows.h>
#include <mmsystem.h>

using std::cout;
using std::cin;
using std::string;

void funkcja(const char * const a)
{
cout << a << "\n";
}

int main(void)
{
string text;
cin >> text;

    funkcja( sndPlaySound(text+".wav", SND_ASYNC).c_str());

    return 0;

}

byku_guzio
  • Rejestracja: dni
  • Ostatnio: dni
0

ehhh... zamiast bawić się w dźwięki może najpierw wypadałoby ogarnąć podstawy: typy danych, stringi, funkcje, tablice, wskaźniki, wczytywanie i wyświetlanie danych? Jak chcesz używać klasy string to wypadałoby wiedzieć co to są klasy, jej składowe, metody, itp. itd.
Zacznij od podstaw i zapomnij na razie o takich wynalazkach jak windows.h itd.

  • Rejestracja: dni
  • Ostatnio: dni
0

Mi tam się pomysł podoba, całkiem... oryginalny i coś tam go nauczy :>
Zakładając, że masz dla każdej literki plik wave, można je kolejno odtwarzać, będzie to prawie jak czytanie... :>

Kopiuj
#include <string> //typ tekstowy
#include <windows.h> //api windowsa
#include <mmsystem.h> //systemowe zasoby multimedialne

using namespace std;

int main(int argc, char* argv[])
{
  //pobranie tekstu
  string text;
  cin >> text; //wprowadzenie

  //odtwarzanie kolejnych literek
  char file_name[] = "_.wav"; //bufor tekstowy z nazwą pliku, będzie zmieniana tylko 1-szy znak
  for(size_t i = 0; i < text.size(); ++i)
  {
    file_name[0] = text[i]; //ustawienie 1 znaku nazwy pliku na aktualny znak w podanym tekście
    if(PlaySound(file_name, NULL, SND_SYNC | SND_FILENAME | SND_NODEFAULT) == FALSE)
    {
      //a co gdy nie będzie pliku i nie będzie się dało odtworzyć literki?
      //tutaj możesz obsłużyć taką sytuacją na swój sposób :>
    }
  }
  
  system("PAUSE"); //zatrzymanie programu (wiem, ale nie komentować, to nie wątek na temat zatrzymania programu)
  return 0;
}

...nie kompilowane

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

//a co gdy nie będzie pliku i nie będzie się dało odtworzyć literki?
//tutaj możesz obsłużyć taką sytuacją na swój sposób :>

Kopiuj
PlaySound("nooooooooooooooo.wav",NULL,SND_SYNC|SND_FILENAME|SND_NODEFAULT);
aurel
  • Rejestracja: dni
  • Ostatnio: dni
0
suchecki300 napisał(a)

wg ciebie tak powinno być??

#include <iostream>
#include <string>
#include <windows.h>
#include <mmsystem.h>

using std::cout;
using std::cin;
using std::string;

void funkcja(const char * const a)
{
cout << a << "\n";
}

int main(void)
{
string text;
cin >> text;

    funkcja( sndPlaySound(text+".wav"**.c_str()**, SND_ASYNC));

    return 0;

}

Matko jedyna, ziom, weź ty się skup. Błąd ci jasno mówi, że nie może konwertować stringa na const char *. Dodanie takiego rzutowania to dodanie metody c_str() DO STRINGA nie do funkcji :/
Idź poucz się minimum o stringach, o wczytywaniu danych i używaniu ich.
Mój kod był poglądowy, jak to zrobić, żeby nie pisać oddzielnego ifa dla każdej litery (to najbardziej szalony pomysł jaki widziałam) i może jeszcze oddzielnego ifa dla każdego słowa, bo nie potrafisz stringa do zmiennej wczytać :/

aurel
  • Rejestracja: dni
  • Ostatnio: dni
0

forum wariuje, stąd drugi post :/
http://img89.imageshack.us/i/bladp.jpg/

S3
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za pomoc nareszcie wszystko wporzo działa, sory bo czasami jak się potem zastanowiłem to głupoty robiłem, ale ostatnio codziennie mam egzaminy i kiepsko myśle. Jeszcze raz dzięki, szczególnie tobie nobody tylko musisz chyba jeszcze <iostream> dorzucić. :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.