[C/C++] Przerobienie kodu z C++ na C.

Michalgromadzki
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 3 wrz 2009, o 12:05
Płeć: Mężczyzna
Podziękował: 5 razy

[C/C++] Przerobienie kodu z C++ na C.

Post autor: Michalgromadzki »

Jak przerobić ten kod z C++ na C?:

Kod: Zaznacz cały

#include <iostream>
#include <windows.h>
#include <string>
#include <ctime>
#include <cctype>
#include <conio.h>
#include <fstream>
using namespace std;
string wl="ON";
string wyl="OFF";
string zdanie;
string* wsk1=&wyl;
string* wsk2=&wyl;
string* wsk3=&wyl;
string* wsk4=&wyl;
string* wsk5=&wyl;
void wypisz()
{
    cout<<"\nF1 - Wczyt. z pliku jest "<<*wsk1<<endl;
    cout<<"\nF2 - Zam. z 1 lub 2 na 5 || z 6 i 7 na 9 jest "<<*wsk2<<endl;
    cout<<"\nF3 - Zam. wilkosci co  jest "<<*wsk3<<endl;
    cout<<"\nF4 - Dopisanie skrotu na koncu jest "<<*wsk4<<endl;
    cout<<"\nF5 - Zapis do pliku jest "<<*wsk5<<endl;
    cout<<"\nF12 - ZAPISZ"<<endl;
}
int main(void)
{
    wypisz();
    while(1)
    {
        if(GetAsyncKeyState(VK_F1))
        {
            if(*(wsk1)==wyl)
                wsk1=&wl;
            else
                wsk1=&wyl;
            wypisz();
        }
        if(GetAsyncKeyState(VK_F2))
        {
            if(*(wsk2)==wyl)
                wsk2=&wl;
            else
                wsk2=&wyl;
            wypisz();
        }
        if(GetAsyncKeyState(VK_F3))
        {
            if(*(wsk3)==wyl)
                wsk3=&wl;
            else
                wsk3=&wyl;
            wypisz();
        }
        if(GetAsyncKeyState(VK_F4))
        {
            if(*(wsk4)==wyl)
                wsk4=&wl;
            else
                wsk4=&wyl;
            wypisz();
        }
        if(GetAsyncKeyState(VK_F5))
        {
            if(*(wsk5)==wyl)
                wsk5=&wl;
            else
                wsk5=&wyl;
            wypisz();
        }
        if(GetAsyncKeyState(VK_F12))
        {
            break;
        }
        Sleep(150);
    }
    cout<<"Zdanie: ";
    if(*(wsk1)==wl)
    {
        string tmp;
        ifstream pliko("testwej.txt");
        {
            getline(pliko,zdanie);
        }
    }
    if(*(wsk1)==wyl)
        getline(cin,zdanie,'\n');
    if(*(wsk2)==wl)
    {
        for(int i=0; i<zdanie.length(); i++)
        {
            if(zdanie[i]=='1' || zdanie [i]=='2')
            {
                zdanie.replace(i,1,"5");
            }

            else if(zdanie[i]=='6' || zdanie[i]=='7')
            {
                zdanie.replace(i,1,"9");
            }
        }
    }

    if(*(wsk3)==wl)
    {
        for(int i=1; i<zdanie.length(); i+=4)
        {
            zdanie[i]=toupper(zdanie[i]);
        }
    }

    if(*(wsk4)==wl)
    {
        srand(time(NULL));
        int losowa=rand()%4;
        if(losowa==1)zdanie.append(" zl");
        else if(losowa==2)zdanie.append(" dolar");
        else if(losowa==3)zdanie.append(" euro");
        else zdanie.append(" gbp");
    }

    if(*(wsk5)==wl)
    {
        ofstream plik("testwyj.txt", ios::out | ios::trunc);
        {
            plik<<zdanie;
        }
    }
    cout<<"\n"<<zdanie;
    getch();
    return 0;
}
Ostatnio zmieniony 25 gru 2010, o 22:33 przez Anonymous, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C/C++] Przerobienie kodu z C++ na C.

Post autor: Afish »

Pozbyć się strumieni i stringów.
Michalgromadzki
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 3 wrz 2009, o 12:05
Płeć: Mężczyzna
Podziękował: 5 razy

[C/C++] Przerobienie kodu z C++ na C.

Post autor: Michalgromadzki »

Afish pisze:Pozbyć się strumieni i stringów.
Nie wiem np. na co zamienić stringi, żeby w C śmigało. Strumieniowe otwieranie pliku na zwykłe fopen/fclose, czy fgets/fputs?

Poza tym, po szczątkowych próbach, powiedzmy 'konwersji' z c++ na c, kompilator wywala mi błąd coś nt. standardu C99, a tak dokładniej, w tej pętli:

if(*(wsk3)==wl)
{
for(int i=1; i<zdanie.length(); i+=4)
{
zdanie=toupper(zdanie);
}
}
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C/C++] Przerobienie kodu z C++ na C.

Post autor: Afish »

Stringi zamień na tablice charów, a do otwierania plików fopen i fclose. fgets i fputs są do wczytywania/zapisywania danych.
Michalgromadzki
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 3 wrz 2009, o 12:05
Płeć: Mężczyzna
Podziękował: 5 razy

[C/C++] Przerobienie kodu z C++ na C.

Post autor: Michalgromadzki »

Że niby jakoś tak?

#define WLACZONE
#define WYLACZONE
char wl [WLACZONE];
char wyl [WYLACZONE];
char zdanie;
char* wsk1=&wyl;
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C/C++] Przerobienie kodu z C++ na C.

Post autor: Afish »

Nie. Weź jakąś książkę o języku C i poczytaj, bo strzelanie nie ma sensu.
mis02
Użytkownik
Użytkownik
Posty: 30
Rejestracja: 15 gru 2009, o 17:19
Płeć: Mężczyzna
Lokalizacja: ///
Podziękował: 6 razy
Pomógł: 3 razy

[C/C++] Przerobienie kodu z C++ na C.

Post autor: mis02 »

Michalgromadzki pisze: Poza tym, po szczątkowych próbach, powiedzmy 'konwersji' z c++ na c, kompilator wywala mi błąd coś nt. standardu C99
Wyciągnij definicję zmiennej sterującej przed pętlę.
Tutaj możesz coś o tym poczytać:
ODPOWIEDZ