Mit fstream einer Zeichenkette in einer Datei zu schreiben, ist ein Leerzeichen zwischen jedem Buchstaben setzen, die Zeichenfolge i stammt aus einer Funktion schreibe, die Binär-Code in eine ascii konvertiert:Leerzeichen bei der Verwendung von fstream schreibt man ein
void almacenar(string texto)
{
string temp;
string test = "hola";
string compreso ="";
remove("compreso.daar");
int textosize=texto.size();
int i = 0;
while (i<textosize){
while(temp.size()!=8){
temp=temp+texto[i];
i++;
if (i>=textosize) {
break;
}
}
compreso=compreso+bitoascii(temp);
temp.clear();
}
Escribir(test,"compreso.daar");
}
int Escribir(string i,const char* archivo)
{
fstream outputFile;
outputFile.open(archivo, fstream::app);
outputFile<<i;
outputFile.close();
return 0;
}
string bitoascii(std::string data)
{
std::stringstream sstream(data);
std::string output;
while(sstream.good())
{
std::bitset<8> bits;
sstream >> bits;
char c = char(bits.to_ulong());
output += c;
}
return output;
}
die Datei sould „Ø“ haben „Ø“ oder „oo“ ist „Ø Ø“ wenn ich die Zeichenfolge über eine Konsole drucken, Ø enthält es keine Räume
Bitte geben Sie eine [Minimal, vollständig und prüfbare Beispiel] (http://stackoverflow.com/help/mcve) –
BTW, sollten Sie erklären ' textosize' als 'const int', da es sich nach der Zuweisung nicht ändert. Ähnlich für andere Variablen. –
Ist 'Ø' ein ASCII-Zeichen? Was ist der [ASCII-Code] (https://en.wikipedia.org/wiki/ASCII)? Woher weißt du, dass es Räume gibt? –