Forum huvudsida -> Programmering -> C++ Hjälp med inlämningsuppgift!
Sidor: 1
XpzychoX | 12:23 - 16:e April 2010 | Post #1 | |
Medlem Inlägg: 3 Skicka PM |
Ja som rubriken lyder behöver ja hjälp, jag har i princip skapat en hel kod själv och lekt i en vecka nu men allt funkar inte riktigt som det ska... Uppgiften går ut på att skapa ett program som översätter vanlig text till morsekod och vise versa. Jag klarade av att skapa delen av programmet som översätter text till morse, men andra hållet blev betydligt svårare eftersom jag inte riktigt vet hur jag ska läsa in morse texten... Saken är ju den att jag tar in en väldans massa tecken som måste säras med whitespace, och därmed skapa "ord"(morse bokstäverna) som jag dessutom vill kunna lagra i variabler som jag sedan kan använda en pekare till att koppla de samman å skriva ut den bokstav jag vill. Men det lät lättare än vad det var... >< Sen så har jag problemet att jag använder Visual studio med där de vanliga getline funktionerna etc inte funkar vilket dessutom gör det svårt att läsa in denna strängen överhuvudtaget... -.- (vanlig cin tar ju bara upp till första mellanslaget men inget mer) Iaf... jag postar den kod jag har, vilket ni kommer märka flummar till rejält när den kommer till andra delen av programmet.... Hur som helst är jag tacksam för all hjälp! Posta gärna inte "använd dig av blabla" etc för tro mig ja har sökt och kollat alla metoder och de som finns klarar jag liksom inte använda om jag inte först förstår dem, vilket är varför jag frågar här... Så om det är en metod ni föreslår visa gärna hur den funkar så jag vet hur man använder den xD #include <iostream> #include <string.h> #include <stdio.h> #include <ctype.h> #include <vector> #include <sstream> using namespace std; int main() { int i, k; int L; int trans; printf("Vad vill du göra?n" "(1) Översätta till morsen" "(2) Översätta från morsen" "(3) Avsluta programmetnn"); cin >> trans; if (trans == 1) { char alph[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char *morse[] = { ".-","-...","-.-.","-..",".", // a-e "..-.","--.","....","..",".---", // f-j "-.-",".-..","--","-.","---", // k-o ".--.","--.-",".-.","...","-", // p-t "..-","...-",".--","-..-","-.--", // u-y "--.."}; // z char text[100]; int antboks = strlen(alph); printf("nnSkriv det meddelande du vill ska översättas:nn"); cin >> text; L = strlen(text) - 1; // L = antal tecken meddelandet innehållet for (i = 0; i < L; i++) { text[i] = toupper(text[i]); // Gör så att det inte spelar nån roll om man skriver } // med stora eller små bokstäver, små bokstäver = stora for (i = 0; i < L; i++) { // söker igenom texten efter tecken, dock är if satsen här if (text[i] == ' ') // onödig för tillfället då det inte kommer finnas med mer printf(" "); // än ett ord, men hade annat bibliotek innan bara det att // jag inte kunde använda det när string kom med i koden... else for (k = 0; k <= antboks; k++) { if (text[i] == alph[k]) { printf("%s ", morse[k]); break; }} } } else if (trans == 2) //Härifrån och nedåt är det problemen börjar... { string morse[] = { ".-","-...","-.-.","-..",".", // a-e "..-.","--.","....","..",".---", // f-j "-.-",".-..","--","-.","---", // k-o ".--.","--.-",".-.","...","-", // p-t "..-","...-",".--","-..-","-.--", // u-y "--.."}; // z char *alph[] = {"A","B","C","D","E","F", "H","I","J","K","L","M","N","O","P", "Q","R","S","T","U","V","W","X","Y","Z"}; char text2[100]; int antboks = 25; printf("nnSkriv det meddelande du vill ska översättas:nn"); cin >> text2; string kopi; //Förmodligen ingen logik i dessa men det är det stringstream ss(text2); //närmaste jag kommit, tror det skulle kunna funka //men jag behöver kunna koppla det till funktionerna vector<string> tokens; while (ss >> kopi) tokens.push_back(kopi); L = strlen(text2) - 1; for (i = 0; i < L; i++) { text2[i] = toupper(text2[i]); } for (i = 0; i < L; i++) { if (text2[i] == ' ') printf(" "); else for (k = 0; k <= antboks; k++) { if (text2[i] == morse[k]) { printf("%s", alph[k]); break; }} } } return 0; } Förlåt på efterhand om det ser grymt rörigt ut.... |
XpzychoX | 17:06 - 16:e April 2010 | Post #2 | |
Medlem Inlägg: 3 Skicka PM |
Okej kan bara passa på att skriva att jag skrivit om lite nu och lyckats göra att jag får ett morsetecken att bli till bokstav! =) men jag behöver fortfarande en funktion för att läsa in en hel sträng =) Om någon har några funktioner jag kan testa? cin >> variabel; ger bara ett ord så den går inte ;P getline(cin, variabel); funkar inte i visual studio som sagt... å fgets kan ja inte använda för ja har användt mig av string så att jag i princip dödat den x) (biblioteken som man tar med för string gör att fgets inaktiveras) =P Men iaf, är det någon som kan hjälpa mig med att komma på några kreativa funktionsinläsningar som smiter igenom Visual studios barriärer? =) |
XpzychoX | 20:12 - 16:e April 2010 | Post #3 | |
Medlem Inlägg: 3 Skicka PM |
Kan meddela att jag inte behöver hjälp längre^^ Lyckades få hjälp på annat håll =) Fick igång getline med hjälp av en ignore så att rester från innan inte förstörde inmatingen |
Sidor: 1
Forum huvudsida -> Programmering -> C++ Hjälp med inlämningsuppgift!
Du får inte posta i den här tråden | Till toppen
Datum
2024-04-29 13:30
Vecka: 18
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.