witam! Uczę się c++ do ok 1,5 miecha początki są mozolne
napisałem program, który po wpisaniu textu do konsoli odpala notatnik systemowy i przepisuje tam ten text.Zaznaczam że nie chodzi mi o zapisywanie do pliku gdyż od tego jest <fstream>. Mój kod generalnie działa ale...
gdy do konsoli wpiszę np "kot" w notatniku ląduje ten sam wyraz małymi literami, i jest ok to samo dotyczy dużych litrer >problem pojawia się gdy chcę napisać "koT"
wtedy program używa wyłącznie dużych liter i wynik w notatniku to"KOT" .Nie wiem gdzie tkwi błąd
zależy mi aby program odróżniał znaki z shiftem i bez shifta Gdyby ktoś z bardziej doświadczonych kolegów mogł mi pomóc będe wdzięczny
na razie używam dev`a
</
#include <windows.h>
#include <cstdio>
#include <iostream>
#include <winable.h>
using namespace std;
int main()
{
string A;
getline(cin,A) ;
int a=A.size();
char *B=new char[a];
strncpy(B, A.c_str(), a+1);
bool k=false;
// poniżej wartości char klawiatury które wchodzą z shiftem
int shift[]={33,34,35,36,37,38,40,41,42,43,58,60,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,94,123,124,125};
for (int i=0;i<=a;++i)//sprawdzamy czy zastosować "keybd_event(VK_SHIFT, 0, 0, 0);"
{
for(int j=0;j<=45;++j)
if ((int)B[i]==shift[j])
k=true;
}
for (int i=0;i<=a;++i)
cout<<(int)B[i]<<" "; //pomocnicze wypisywanie asci
system("start notepad");Sleep(500); //odpalamy notatnik
for (int i=0;i<=a;++i)
{
if(k)
keybd_event(VK_SHIFT, 0, 0, 0); //SHIFT (1)
keybd_event(VkKeyScan(B[i]), 0, 0, 0);Sleep(500); //klawisz (1)
if(k)
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); //SHIFT
keybd_event(VkKeyScan(B[i]), 0, KEYEVENTF_KEYUP, 0); //klawisz (0)
}
keybd_event(VK_BACK, 0, 0, 0); //zmzuje oatatni niepotrzebny znak(1)
keybd_event(VK_BACK, 0, KEYEVENTF_KEYUP, 0); //zmzuje oatatni niepotrzebny znak(0)
system("PAUSE");
delete B;
return 0;
}>
```cpp