wchar_t array an anderen wchar_t array anfügen funktioniert nicht

oleeiner2

Grünschnabel
hallo
Code:
m_ausgabe.AddString(L"Die Zahl ist keine Primzahl.");
		wchar_t string2[10];
		wchar_t string3[100];
		wchar_t string4[100];
		int b = 0;
		int a = b;
		if (m_bool1.GetCheck()==1)
		{
			unsigned long i;
			for (i =2; i <= zahl ; i ++)
			{
				while ( zahl % i == 0)
				{	
					if(b==0)
					{	
						if (b <= a+3)
						{
							swprintf(string2, L"%lu", i);
							wcscat_s (string3,10,string2);
							b++;
						}
						else
						{
							a=b+3;
							m_list.AddString(string3);
							wcscpy(string3,string4);
						}
					}
					else
					{	
						if (b <= a+3)
						{
							swprintf(string2, L"*%lu", i);
							wcscat_s (string3,10,string2);
							b++;
						}
						else
						{
							a=b+3;
							m_list.AddString(string3);
							wcscpy(string3, string4);
						}
					}
					zahl /=i;
				}
			}
		}

ich möchte zur übersichtlicheren ausgabe meine programms mehrere werte in eine Zeile einer Listbox schreiben
dabei hab ich mir gedacht wenn man einen string an einen anderen dranhängt und den langen string dann ausgibt funktioniert dies....
der compiler gibt mir immer die Fehler aus:
Code:
1>d:\programmieren\mfc\primzahl\primzahl\primzahldlg.cpp(138): warning C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\swprintf.inl(85): Siehe Deklaration von 'swprintf'
1>d:\programmieren\mfc\primzahl\primzahl\primzahldlg.cpp(146): warning C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\string.h(283): Siehe Deklaration von 'wcscpy'
1>d:\programmieren\mfc\primzahl\primzahl\primzahldlg.cpp(153): warning C4996: 'swprintf': swprintf has been changed to conform with the ISO C standard, adding an extra character count parameter. To use traditional Microsoft swprintf, set _CRT_NON_CONFORMING_SWPRINTFS.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\swprintf.inl(85): Siehe Deklaration von 'swprintf'
1>d:\programmieren\mfc\primzahl\primzahl\primzahldlg.cpp(161): warning C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\string.h(283): Siehe Deklaration von 'wcscpy'
1>ResourceCompile:

könnt ihr mir helfen?
 
Hi.

Ich sehe keine Fehler. Ich sehe ein paar Warnungen.

Evtl. solltest du dir die Warnungen einfach mal durchlesen und entsprechend handeln?

Gruß
 
Das ist ja mein Problem ich sehe auch keine Fehler....
hab das mit den warnungen schon verwirklicht funktionierte nicht kam zwar keine fehlermeldung mehr aber es stand nur die letzte berechnung von i da
aber das Pogramm stürzt mit dem code immer ab sobald der haken in der chabox bool1 gesetzt wurde...
 
Aha, du bekommst also einen Laufzeitfehler. Warum sagst du das nicht gleich?

Hast du es denn mal mit dem Debugger probiert? In welcher Zeile stürzt das Programm ab?

Allerdings sind weder string3 noch string4 initialisiert. Das geht dann in der Regel schief, wenn man versucht die Strings zu verwenden (ohne ihnen einen korrekten Wert zuzuweisen).
C:
wchar_t string3[100] = L"", string4[100] = L"";
Gruß
 
Also es funktioniert erstmal grundlegend
aber bei einigen zahlen wie ZB. 500 kommt diese meldung:

Jetzt funtioniert es :)

Danke ;)
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    44,3 KB · Aufrufe: 12
Zuletzt bearbeitet:
nein xD ich hab die ausgabefunktion an eine andere stelle im code geschoben und dann hinten dran noch mal einfunktion die alles löscht und dann nur string 3 ausgibt keine ahnung warum das so klappt und anders nicht :D
 
Zurück