Avatar billede vaarup Nybegynder
01. december 2003 - 19:33 Der er 11 kommentarer og
2 løsninger

point til arne_v og segmose + tillægs spørgsmål , string

Hej

1) Forklaring, hvordan giver jeg jer point? :-)

2) tillægsspørgsmål:

Vil gerne modtage en string og ligge den sammen, med en anden string og sende den videre i metoden.
Og få skrevet ud i mainWindow(s)

cin >> oFilename;
string s = "Filen: " + oFilename + ", er gemt";
mainWindow(s);

men string s bliver skrevet helt forkert ud på skærmen i
metoden mainWindow, kan det lade sig gøre få det skrevet pænt ud?
Avatar billede arne_v Ekspert
01. december 2003 - 19:38 #1
Avatar billede arne_v Ekspert
01. december 2003 - 19:39 #2
svar

NB: segmose svarer formentlig først i morgen tidlig - jeg mener ikke
    han plejer at være på om aftenen
Avatar billede arne_v Ekspert
01. december 2003 - 19:40 #3
re 1)

Når vi begge har lagt svar kan du acceptere begge svar.
Avatar billede arne_v Ekspert
01. december 2003 - 19:41 #4
re 2)

Hvad dækker "helt forkert" over ?

Og hvordan ser mainWindow ud. Mit umiddelbare gær er at fejlen ligger
i den og ikke i den simple string konkatanering.
Avatar billede vaarup Nybegynder
01. december 2003 - 22:24 #5
Tak for siden, den skal jeg lige have læst.
Helt forkert, dækker over: at der uskrives en masse underlige tegn i console vinduet, når string variablen s skrive ud i mainWindow med cout << s ;
Har ingen problemer hvis jeg selv skriver en tekst, eks mainWindow("test");
så kommer det pænt ud, men laver jeg det andet , hvor jeg gerne vil have hæftet lidt på foran og bagved variabel navnet, kikser det.
Jeg kan ikke få lov til at copy paste det over, men hvis du har en mail kan jeg sende dig et screen dump, af det "helt forkerte" :-)
Kommer lige i tanke om ofilename er difineret som    char oFilename[10000],
det måske det der driller, kan en char og string ikke arbejde / lægges sammen?
Avatar billede arne_v Ekspert
01. december 2003 - 22:26 #6
arne_v@mail.danbbs.dk
Avatar billede arne_v Ekspert
01. december 2003 - 22:28 #7
string og char * bør virke OK sammen.

Men hvordan er argumentet til mainWindow erklæret ?

void mainWindow(char *s)

eller

void mainWindow(string s)

Hvis det første så prøv lige at kald med:

mainWindow(s.c_str());
Avatar billede vaarup Nybegynder
01. december 2003 - 23:07 #8
Den er erklæret sådan her:  void mainWindow(string s){  , så skal jeg ikke prøve dit forslag som jeg læser det du skrive. Men det er måke der fejlen ligger? -i erklæringen af metoden.
Har lige dig en e-mail med Screen dump.
Avatar billede arne_v Ekspert
01. december 2003 - 23:13 #9
Det kunne ligne et Unicode-ASCII problem p.g.a. mønstret.
Avatar billede arne_v Ekspert
01. december 2003 - 23:16 #10
#include <iostream>
#include <string>

using namespace std;

void mainWindow(string s)
{
  cout << s << endl;
}

int main()
{
  cout << "Indtast filnavn: ";
  string oFilename;
  cin >> oFilename;
  string s = "Filen: " + oFilename + ", er gemt";
  mainWindow(s);
  return 0;
}

giver mig:

Indtast filnavn: x.x
Filen: x.x, er gemt
Avatar billede vaarup Nybegynder
01. december 2003 - 23:42 #11
Tak Arne: du gav mig inspiration til at løse problemet.
Dit eksempel virker også fint hos mig.
Variablen oFlilename var defineret som char array fordi oFstream vil have en char med ind. Men jeg har lavet den (oFilename) om til en string istedet og gjort sådan her;  ofstream fout(oFilename.c_str())  - .c_str() (som du præsenterede tidligere) konvertere åbenbart fra string til char og så fungere det som jeg gerne ville have det til.
Som jeg forstår det du skrev tidligere skal jeg først acceptere dit svar i morgen når jeg også har modtaget et svar fra segmose.
Avatar billede segmose Nybegynder
02. december 2003 - 10:21 #12
Svar.
Avatar billede vaarup Nybegynder
02. december 2003 - 14:53 #13
Håber det er fair og i "tråd" med hvordan man gør!! :-)
Endnu engang tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester