yadorMedlem sedan mars 2004455 inlägg Hej wf.
Jag har gjort ett program som jag kallar får kryp. Den omvandlar texten som du skriver in till motsvarande tecken i ascii- tabellen. Det gick bra, men sen försökte jag göra ett motsvarande program som omvandlar ascii tecknen tillbaka, men de gick inte. Kryp källkod är följande:
#include <iostream.h>
int main(void)
{
cout << "Skriv in en text.\n\n\n\n";
char str[1024];
cin.getline(str, 1024);
cout << "\n\nBlir:\n\n";
int i = 0;
while(str[i]){
cout << (int)str[i] << " ";
i++;
}
cout << "\a\n";
cin.get();
return 0;
}
Jag försökte göra tvärt om genom att byta ut char str[1024]; mot int str[1024]; samt ändra i cout, men då fick jag 20 fel. Jag har också provat massa andra saker. Så jag undrar om ni kan visa mig hur man kan lösa de, iallafall ge mig en länk/ledtråd.
Tack på förhand!
puhbjörnMedlem sedan juni 2001370 inlägg Såhär gör du om ascii till text
int tecken = 106;
std::cout << static_cast<char>(tecken);
Så nu får du ta och testa dig fram lite
yadorMedlem sedan mars 2004455 inlägg jag vet, men jag kan inte få den att omvandla hela meningar. t ex så blir Hallo wf 104 97 108 108 111 32 119 102.. hur ska jag kunna göra så att jag kan skriva in detta o sen få meningen.. jag får ju en massa fel om jag skriver int str[1024];
puhbjörnMedlem sedan juni 2001370 inlägg Ahh, ok ...
Testa att lägga all input i en string, splittra den sedan vid alla mellanrum och casta dem splittrade delarna till en int och sen till char då. Något sådant borde kanske funka.
yadorMedlem sedan mars 2004455 inlägg hur splittrar man den vid alla mellanrum, jag e nämligen nybörjare
Engine^Medlem sedan dec. 20003 887 inlägg spangoMedlem sedan juni 20008 205 inlägg Om man inte kör .Net får man använda nåt annat för att splitta strängar (vad som helst förutom strtok). Ett exempel finns på http://www.webforum.nu/showthread.php?s=&postid=987974#post987974.
yadorMedlem sedan mars 2004455 inlägg hur får jag strsplit att funka i spangos länk, hur ska den se ut tillsammans med min funktion för jag fattar inte vad den gör eller hur jag ska använda den... tack annars
puhbjörnMedlem sedan juni 2001370 inlägg Edit: såg nu att det var samma sak som spango gjorde.
Men du kan väl använda hans funktion såhär
std::vector<std::string> words;
std::string ord; // en massa ascii ord
strsplit(word,ord," ");
gå sedan igenom alla strängarna i vektorn och casta dom till int.
yadorMedlem sedan mars 2004455 inlägg jag har försökt nu en hel vecka, men jag får bara fel så jag skiter i detta nu, men jag säger tack till alla som försökte hjälpa mig.
puhbjörnMedlem sedan juni 2001370 inlägg Har kommit på ett annat sätt att göra det på nu, som inte innehåller spliitrande av strängar :)
// Inkluderingar
#include <iostream>
#include <vector>
int main(int argc, char *argv[]) {
// Vektor med asci-tecken
std::vector<int> input;
int i=0;
std::cout << "Skriv in ett ascii tecken, följt av enter, -1 för att avsluta:" << std::endl;
while(true) {
// Loopa tills användaren väljer att avlsuta genom att skriva -1
std::cin >> i;
if(i<0)
break;
// Lägg till ascii-tecknet i strängen
input.push_back(i);
// Rensa inputen
std::cin.clear();
}
// Loopa igenom alla strängar i vektorn
for(size_t i=0;i<input.size();i++) {
// Skriv ut
std::cout << static_cast<char>(input[i]) << " ";
}
return 0;
}