stringstream arrays problem

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <sstream>
#include <iostream>
using namespace std;
int main(){char a[6]="Hello",b[7]=" World";
char chars[2]={a[6],b[7]};
string c,d;
string strings[2]={c,d};
stringstream e,f;
e<<a;
f=e;;
stringstream arrays[2]={e,f};
for(int i=0;i<2;i++){
arrays[i]<<chars[i];
strings[i]=arrays[i].str();
}
cout<<c+d<<endl;
return 0;
}

How can i do transfer chars to arrays?
Last edited on
what do you mean? "char somevariable[x]" is an array of characters. I wish you knew something about white space and used it. From what I see in the code you need to learn how to declare variables in the first place. That maze of declarations is very hard to follow.

I am not sure how this one might declare out with running some test:
 
char chars[2]={a[6],b[7]};


I don't think it ended up with what you intended.

Why did I need to make something so complex for what it simply appears to do?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <resource.h>
#include <math.h>
#include <sstream> 
#define etiket1 1
#define ipinuzunlugu 2
#define yercekimiivmesi 3
#define surtunme 4
#define deney1 5
#define deney2 6
#define deney3 7
#define deney4 8
#define deney5 9
#define deney6 10
#define deney7 11
#define deney8 12
#define deney9 13
#define deney10 14
#define ortalamazaman 15
#define hesapla 16
#define sifirla 17
#define beklenenzaman 18
#define hatapayi 19
#define yapilandeneysayisi 20
using namespace std;

Pencere(HWND A,UINT B,WPARAM C,LPARAM D){
TCHAR deney1yazi[14],deney2yazi[14],deney3yazi[14],deney4yazi[14],deney5yazi[14],
deney6yazi[14],deney7yazi[14],deney8yazi[14],deney9yazi[14],deney10yazi[14],
yercekimiyazi[7],ipinuzunluguyazi[4],deneyortyazi[6],yapilandeneysayisiyazi[2],surtunmekatsayisiyazi[6],
beklenenyazi[14],hatayuzdesiyazi[6];
     switch(B)
     {case WM_CREATE:{
            MessageBox(NULL,"Program bazı yüksek zaman değerlerinde sapıtmakta\
 ve Sürtünme Katsayısına 1 diyebilmektedir.Bunun sebebi programın alelacele\
 ve hassasiyeti fazla olmayacak şekilde dizayn edilmiş olmasıdır.","Program Bilgisi",MB_OK|MB_ICONHAND);
           MessageBox(NULL,"Basit Sarkaç,Arşimed'in zamanı ölçmekte karşılaştığı zorluklar\
 sonucu ortaya çıkmış bir düzenektir.Temel formül olarak:T²=4·PISayısı²·İpin Boyunun Uzunluğu/İvme(Biz şimdilik bunu\
yerÇekimi İvmesi olarak alacağız) şeklinde ifade edilir.","Bilgi Notu:",MB_OK|MB_ICONWARNING);
           MessageBox(NULL,"Daha Önce Söylenmiş Olduğu Gibi Bir Hareketin(ya da Birim Hareketin)\
 Yapılabilmesi İçin Geçen Süreye Periyod,Birim Zamanda(Genellikle 1 sn) yapılan Harekete de Frekans \
 Dendiğini Görmüştük.","Bilgi Notu:",MB_OK|MB_ICONWARNING);
         MessageBox(NULL,"Sizce kütlenin bulunan bu zamana(periyoda) nasıl bir etkisi vardır?","Bölüm Soruları)1.Soru:",MB_OK|MB_ICONQUESTION);
           MessageBox(NULL,"Sizce deney düzeneğinde neden lastik bir top kullandık?","Bölüm Soruları)2.Soru:",MB_OK|MB_ICONQUESTION);
         
         BirimOlustur br1(etiket,"İpin Uzunluğu:",5,15,95,18,A,(HMENU)etiket1);
         BirimOlustur br2(yazialani,"",140,15,55,15,A,(HMENU)ipinuzunlugu);
         BirimOlustur br38(etiket,"m",197,15,35,15,A,(HMENU)etiket1);
         BirimOlustur br3(etiket,"Yer Çekimi İvmesi:",5,35,125,18,A,(HMENU)etiket1);
         BirimOlustur br4(yazialani,"",140,35,55,15,A,(HMENU)yercekimiivmesi);
         BirimOlustur br39(etiket,"m/sn²",198,35,35,18,A,(HMENU)etiket1);
         BirimOlustur br5(etiket,"Sürtünme Katsayısı:",5,55,135,15,A,(HMENU)etiket1);
         BirimOlustur br6(yazialani,"",140,55,55,15,A,(HMENU)surtunme);
         BirimOlustur br7(etiket,"Deney-1:",5,75,75,15,A,(HMENU)etiket1);
         BirimOlustur br8(yazialani,"",5,95,55,15,A,(HMENU)deney1);
         BirimOlustur br40(etiket,"sn",62,95,35,15,A,(HMENU)etiket1);
         BirimOlustur br9(etiket,"Deney-2:",85,75,75,15,A,(HMENU)etiket1 );
         BirimOlustur br10(yazialani,"",85,95,55,15,A,(HMENU)deney2);
         BirimOlustur br41(etiket,"sn",142,95,35,15,A,(HMENU)etiket1);
         BirimOlustur br11(etiket,"Deney-3:",165,75,75,15,A,(HMENU)etiket1 );
         BirimOlustur br12(yazialani,"",165,95,55,15,A,(HMENU)deney3);
         BirimOlustur br42(etiket,"sn",222,95,35,15,A,(HMENU)etiket1);
         BirimOlustur br13(etiket,"Deney-4:",245,75,75,15,A,(HMENU)etiket1 );
         BirimOlustur br14(yazialani,"",245,95,55,15,A,(HMENU)deney4);
         BirimOlustur br43(etiket,"sn",302,95,35,15,A,(HMENU)etiket1);
         BirimOlustur br15(etiket,"Deney-5:",325,75,75,15,A,(HMENU)etiket1 );
         BirimOlustur br16(yazialani,"",325,95,55,15,A,(HMENU)deney5);
         BirimOlustur br44(etiket,"sn",382,95,35,15,A,(HMENU)etiket1);
         BirimOlustur br17(etiket,"Deney-6:",5,125,75,15,A,(HMENU)etiket1 );
         BirimOlustur br18(yazialani,"",5,145,55,15,A,(HMENU)deney6);
         BirimOlustur br45(etiket,"sn",462,95,35,15,A,(HMENU)etiket1);
         BirimOlustur br19(etiket,"Deney-7:",85,125,75,15,A,(HMENU)etiket1 );
         BirimOlustur br20(yazialani,"",85,145,55,15,A,(HMENU)deney7);
         BirimOlustur br46(etiket,"sn",62,145,20,15,A,(HMENU)etiket1);
         BirimOlustur br21(etiket,"Deney-8:",165,125,75,15,A,(HMENU)etiket1 );
         BirimOlustur br22(yazialani,"",165,145,55,15,A,(HMENU)deney8);
         BirimOlustur br47(etiket,"sn",142,145,20,15,A,(HMENU)etiket1);
         BirimOlustur br23(etiket,"Deney-9:",245,125,75,15,A,(HMENU)etiket1 );
         BirimOlustur br24(yazialani,"",245,145,55,15,A,(HMENU)deney9);
         BirimOlustur br48(etiket,"sn",222,145,20,15,A,(HMENU)etiket1);
         BirimOlustur br25(etiket,"Deney-10:",325,125,75,15,A,(HMENU)etiket1 );
         BirimOlustur br26(yazialani,"",325,145,55,15,A,(HMENU)deney10);
         BirimOlustur br49(etiket,"sn",302,145,20,15,A,(HMENU)etiket1);
         BirimOlustur br50(etiket,"sn",382,145,20,15,A,(HMENU)etiket1);
         BirimOlustur br27(etiket,"Ölçülen Zamanların(Periyodların) Ortalaması:",5,185,295,18,A,(HMENU)etiket1 );
         BirimOlustur br28(yazialani,"",302,185,55,15,A,(HMENU)ortalamazaman);
         BirimOlustur br51(etiket,"sn",359,185,20,15,A,(HMENU)etiket1);
         BirimOlustur br29(etiket,"Beklenen Zaman:",5,213,125,15,A,(HMENU)etiket1 );
         BirimOlustur br30(yazialani,"",120,213,55,15,A,(HMENU)beklenenzaman);
         BirimOlustur br52(etiket,"sn",177,213,20,15,A,(HMENU)etiket1);
         BirimOlustur br31(tus,"Hesapla",175,243,75,18,A,(HMENU)hesapla);
         BirimOlustur br32(tus,"Sıfırla",255,243,75,18,A,(HMENU)sifirla);
         BirimOlustur br33(etiket,"Hata Payı:%",222,213,80,18,A,(HMENU)etiket1 );
         BirimOlustur br34(yazialani,"",302,213,55,15,A,(HMENU)hatapayi);
        break;}
           case WM_COMMAND:{
                switch(LOWORD(C)){
                                  case hesapla:{
                                       double deney1_sonuc,deney2_sonuc,deney3_sonuc,deney4_sonuc,deney5_sonuc,deney6_sonuc;
                                       double deney7_sonuc,deney8_sonuc,deney9_sonuc,deney10_sonuc,deneyortalama,hatayuzdesi,yercekimisabiti,
                                       surtunmekatsayisi,ipuzunlugu,yapilan,beklenen,PI=3.14;
                                       GetWindowText(GetDlgItem(A,deney1),deney1yazi,14);
                                       GetWindowText(GetDlgItem(A,deney2),deney2yazi,14);
                                       GetWindowText(GetDlgItem(A,deney3),deney3yazi,14);
                                       GetWindowText(GetDlgItem(A,deney4),deney4yazi,14);
                                       GetWindowText(GetDlgItem(A,deney5),deney5yazi,14);
                                       GetWindowText(GetDlgItem(A,deney6),deney6yazi,14);
                                       GetWindowText(GetDlgItem(A,deney7),deney7yazi,14);
                                       GetWindowText(GetDlgItem(A,deney8),deney8yazi,14);
                                       GetWindowText(GetDlgItem(A,deney9),deney9yazi,14);
                                       GetWindowText(GetDlgItem(A,deney10),deney10yazi,14);
                                       GetWindowText(GetDlgItem(A,yercekimiivmesi),yercekimiyazi,4);
                                       GetWindowText(GetDlgItem(A,ipinuzunlugu),ipinuzunluguyazi,4);
                                       GetWindowText(GetDlgItem(A,yapilandeneysayisi),yapilandeneysayisiyazi,2);
                                       deney1_sonuc=atof(deney1yazi);
                                  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
deney2_sonuc=atof(deney2yazi);
                                       deney3_sonuc=atof(deney3yazi);
                                       deney4_sonuc=atof(deney4yazi);
                                       deney5_sonuc=atof(deney5yazi);
                                       deney6_sonuc=atof(deney6yazi);
                                       deney7_sonuc=atof(deney7yazi);
                                       deney8_sonuc=atof(deney8yazi);
                                       deney9_sonuc=atof(deney9yazi);
                                       deney10_sonuc=atof(deney10yazi);
                                       yapilan=atof(yapilandeneysayisiyazi);
                                       ipuzunlugu=atof(ipinuzunluguyazi);
                                       yercekimisabiti=atof(yercekimiyazi);
                                       if(strcmp(deney1yazi,"")==0){
                        MessageBox(NULL,"1.Deneyde Ölçülen Zamanı Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                        if(strcmp(deney2yazi,"")==0){
                        MessageBox(NULL,"2.Deneyde Ölçülen Zamanı Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                        if(strcmp(deney4yazi,"")==0){
                        MessageBox(NULL,"4.Deneyde Ölçülen Zamanı Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                        if(strcmp(deney5yazi,"")==0){
                        MessageBox(NULL,"5.Deneyde Ölçülen Zamanı Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                        if(strcmp(deney6yazi,"")==0){
                        MessageBox(NULL,"6.Deneyde Ölçülen Zamanı Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                        if(strcmp(deney7yazi,"")==0){
                        MessageBox(NULL,"7.Deneyde Ölçülen Zamanı Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                        if(strcmp(deney8yazi,"")==0){
                        MessageBox(NULL,"8.Deneyde Ölçülen Zamanı Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                        if(strcmp(deney9yazi,"")==0){
                        MessageBox(NULL,"9.Deney Değerini Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                         if(strcmp(deney10yazi,"")==0){
                        MessageBox(NULL,"10.Deney Değerini Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                         if(strcmp(ipinuzunluguyazi,"")==0){
                        MessageBox(NULL,"Ölçüm yaptığınız ipin uzunluğunu yazmadınız","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                          if(strcmp(yercekimiyazi,"")==0){
                        MessageBox(NULL,"Yerçekimi İvmesini Girmediniz","UYARI!",MB_OK|MB_ICONWARNING);
                        break;}
                        double deney[10]={deney1_sonuc,deney2_sonuc,deney3_sonuc,deney4_sonuc,
                                      deney5_sonuc,deney6_sonuc,deney7_sonuc,deney8_sonuc,deney9_sonuc,deney10_sonuc};
                      TCHAR deneyyazi[12]={deney1yazi[14],deney2yazi[14],deney3yazi[14],deney4yazi[14],deney5yazi[14],
deney6yazi[14],deney7yazi[14],deney8yazi[14],deney9yazi[14],deney10yazi[14],
yercekimiyazi[7],ipinuzunluguyazi[4]};
stringstream a,b,c,h;
stringstream k,ab,bc,cd,ef,gh,hi,ij,jk,kl,lm,fg;
k<<deney1yazi;
ab<<deney1yazi;
bc<<deney1yazi;
cd<<deney1yazi;
ef<<deney1yazi;
fg<<deney1yazi;
gh<<deney1yazi;
hi<<deney1yazi;
ij<<deney1yazi;
jk<<deney1yazi;
kl<<deney1yazi;
lm<<deney1yazi;
string d,e,f,g;
string l,ba,cb,dc,fe,gf,hg,ih,ji,kj,lk,ml;
stringstream diziler[12]={k,ab,bc,cd,ef,fg,gh,hi,ij,jk,kl,lm};
string cumleler[12]={l,ba,cb,dc,fe,gf,hg,ih,ji,kj,lk,ml};
                          for(int i=0;i<12;i++){
                                               diziler[i]<<deneyyazi[i];
                                              cumleler[i]=diziler[i].str();
                                       for(int j=0;j<cumleler[i].length();j++)
                                       {
                                               if((cumleler[i][j]!='0')||(cumleler[i][j]!='1')||(cumleler[i][j]!='2')||(cumleler[i][j]!='3')||(cumleler[i][j]!='4')||
                                               (cumleler[i][j]!='5')||(cumleler[i][j]!='6')||(cumleler[i][j]!='7')||(cumleler[i][j]!='8')||(cumleler[i][j]!='9')){
                                               MessageBox(NULL,"Lütfen kutucuklara sayılardan başka karakterler yazmayınız.","Program Hatası",MB_OK|MB_ICONHAND);
                                               cumleler[i]="";
                                                break;}
                                                if(cumleler[i][j]=',')
                                               cumleler[i][j]='.';
                                               }
                                               }
                       for(int i=0;i<10;i++){
                                              double j=10;
                                     if(deney[i]=0)
                                     (int)j--;
                                     else
                                     i++;
                                     if(i=10){
                                              if((int)yapilan==(int)j)
                                              break;
                                              else                                  
                                              yapilan=j;}
                                              }
                        deneyortalama=(deney1_sonuc+deney2_sonuc+deney3_sonuc+deney4_sonuc+deney5_sonuc+deney6_sonuc+deney7_sonuc+deney8_sonuc+deney9_sonuc+deney10_sonuc)/yapilan;
                                       beklenen=2*PI*sqrt(ipuzunlugu/yercekimisabiti);
                                       hatayuzdesi=(beklenen-deneyortalama)/beklenen*100;
                        surtunmekatsayisi=1-(4*PI*PI*ipuzunlugu/(yercekimisabiti*deneyortalama*deneyortalama));
                         if((surtunmekatsayisi>=1)||(surtunmekatsayisi<=0)){
                         if(surtunmekatsayisi>=1){
                        goto don;

                       } if(surtunmekatsayisi<=0){
                        goto don;}
                        don:{if(surtunmekatsayisi<=0)
                        MessageBox(NULL,"Sürtünme Katsayısı bu maddi dünyada 0 veya 0'dan Küçük Olamaz.Deneyde Bir Yanlışlık\
 var.","Fiziksel Yanlışlık,",MB_OK|MB_ICONERROR);
                        if((surtunmekatsayisi>1)||(surtunmekatsayisi>1))
                        MessageBox(NULL,"Sürtünme Katsayısı 1 veya 1'den Büyük Olamaz.Deneyde Bir Yanlışlık\
 var.","Fiziksel Yanlışlık",MB_OK|MB_ICONERROR);
                        SetDlgItemText(A,surtunme,"");
                        SetDlgItemText(A,ortalamazaman,"");
                        SetDlgItemText(A, beklenenzaman,"");
                        SetDlgItemText(A, hatapayi,"");
                        break;}}
                                     a<<deneyortalama;
                                       d=a.str();
                                       b<<beklenen;
                                       e=b.str();
                                       c<<hatayuzdesi;
                                       f=c.str();
                                       h<<surtunmekatsayisi;
                                       g=h.str();
                                       
                                       for(int i=0;i<d.length();i++)
                                       deneyortyazi[i]=d[i];
                                       SetDlgItemText(A,ortalamazaman,deneyortyazi);
                                        for(int i=0;i<e.length();i++)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
beklenenyazi[i]=e[i];
                                       SetDlgItemText(A,beklenenzaman,beklenenyazi);
                                       for(int i=0;i<f.length();i++)
                                      hatayuzdesiyazi[i]=f[i];
                                       SetDlgItemText(A,hatapayi,hatayuzdesiyazi);
                                       for(int i=0;i<g.length();i++)
                                      surtunmekatsayisiyazi[i]=g[i];
                                       SetDlgItemText(A,surtunme,surtunmekatsayisiyazi);
                                       break;}
                                       case sifirla:
                                            {SetDlgItemText(A,surtunme,"");
                        SetDlgItemText(A,ortalamazaman,"");
                        SetDlgItemText(A, beklenenzaman,"");
                        SetDlgItemText(A, hatapayi,"");
                        SetDlgItemText(A,deney1,"");
                        SetDlgItemText(A,deney2,"");
                        SetDlgItemText(A, deney3,"");
                        SetDlgItemText(A, deney4,"");
                         SetDlgItemText(A, deney5,"");
                        SetDlgItemText(A, deney6,"");
                        SetDlgItemText(A,deney7,"");
                        SetDlgItemText(A,deney8,"");
                        SetDlgItemText(A, deney9,"");
                        SetDlgItemText(A, deney10,"");
                            SetDlgItemText(A,yercekimiivmesi,"");
                        SetDlgItemText(A, ipinuzunlugu,"");
                                   SetDlgItemText(A, hatapayi ,"");
                            break;}
                                  }
                break;}
           Antlasma;     
          }
PencereBasligi Baslik("Basit Sarkaç");
PencereBoyutu Boyut(50,150,450,310);
PencereOlustur;


This is a short winapi.This is important.And this problem is in part:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
TCHAR deney1yazi[14],deney2yazi[14],deney3yazi[14],deney4yazi[14],deney5yazi[14],
deney6yazi[14],deney7yazi[14],deney8yazi[14],deney9yazi[14],deney10yazi[14],
yercekimiyazi[7],ipinuzunluguyazi[4],deneyortyazi[6],yapilandeneysayisiyazi[2],surtunmekatsayisiyazi[6],
beklenenyazi[14],hatayuzdesiyazi[6];

  TCHAR deneyyazi[12]={deney1yazi[14],deney2yazi[14],deney3yazi[14],deney4yazi[14],deney5yazi[14],
deney6yazi[14],deney7yazi[14],deney8yazi[14],deney9yazi[14],deney10yazi[14],
yercekimiyazi[7],ipinuzunluguyazi[4]};

stringstream k,ab,bc,cd,ef,gh,hi,ij,jk,kl,lm,fg;
k<<deney1yazi;
ab<<deney1yazi;
bc<<deney1yazi;
cd<<deney1yazi;
ef<<deney1yazi;
fg<<deney1yazi;
gh<<deney1yazi;
hi<<deney1yazi;
ij<<deney1yazi;
jk<<deney1yazi;
kl<<deney1yazi;
lm<<deney1yazi;
string d,e,f,g;
string l,ba,cb,dc,fe,gf,hg,ih,ji,kj,lk,ml;
stringstream diziler[12]={k,ab,bc,cd,ef,fg,gh,hi,ij,jk,kl,lm};
string cumleler[12]={l,ba,cb,dc,fe,gf,hg,ih,ji,kj,lk,ml};

                                 for(int i=0;i<12;i++){
                                               diziler[i]<<deneyyazi[i];
                                              cumleler[i]=diziler[i].str();
                                       for(int j=0;j<cumleler[i].length();j++)
                                       {
                                               if((cumleler[i][j]!='0')||(cumleler[i][j]!='1')||(cumleler[i][j]!='2')||(cumleler[i][j]!='3')||(cumleler[i][j]!='4')||
                                               (cumleler[i][j]!='5')||(cumleler[i][j]!='6')||(cumleler[i][j]!='7')||(cumleler[i][j]!='8')||(cumleler[i][j]!='9')){
                                               MessageBox(NULL,"Lütfen kutucuklara sayılardan başka karakterler yazmayınız.","Program Hatası",MB_OK|MB_ICONHAND);
                                               cumleler[i]="";
                                                break;}
                                                if(cumleler[i][j]=',')
                                               cumleler[i][j]='.';
                                               }
                                               }


How can i do this another method?
Last edited on
I... don't really think anyone's going to read all that, sorry. Aside from the size and terrible, terrible layout, the language difference also makes it difficult for us to interpret.

If you have a specific question, post the code that concerns it. Preferably with proper layout and some commenting to clarify.
to me the code there is completely too complex for what it is trying to do. A duplication of things that could be put in one function and called repeatedly. Additionally, I am surprised by things I see in the complex switch statement, which in the past I haven't been able to do according to the standards of c++. Most likely I would have broken down the switch statements so things didn't get so complex.

I agree with gaminic. It can be highly simplified, and I don't know why I need so many of the same type of variables repeatedly. I can understand why you need help with all I have stated.
Topic archived. No new replies allowed.