Czy ktos moglby mi pomoc w zamianie tego kodu na c?
plik >> k >> n;
plik >> tab[i];
cout <<tab[i] << " ";
Czy ktos moglby mi pomoc w zamianie tego kodu na c?
plik >> k >> n;
plik >> tab[i];
cout <<tab[i] << " ";
Oczywiście.
Oto pomoc:
http://en.cppreference.com/w/c/io/fopen
http://en.cppreference.com/w/c/io/fclose
http://en.cppreference.com/w/c/io/fscanf
http://en.cppreference.com/w/c/io/fprintf
EDIT: Pardon, złę linki dałem. Poprawiam się
Jakiej pomocy oczekujesz konkretnie?
Nie znam kompletnie języka C++, a musze to przerobic na C. Nie wiem jak pozamieniac te komendy
No to weź podstawowy kurs C++ do ręki i go użyj, tu nie ma nic trudnego.
Próbowałem juz zamieniac, ale dla osoby nawet slabo znajacej jezyk C, a praktycznie wcale C++ jest to cięzkie zadanie
Czy umiesz przynajmniej obsługiwać we/wy plików w C?
Nie wiem jakiej zamiany dokonac, np dla tych linijek:
plik >> k >> n;
plik >> tab[i];
cout <<tab[i] << " ";
Dodam, że nie jestem studentem informatyki ani żadnego kierunku związanego z informatyką, ale takie zadanie zostało mi powierzone więc daltego potrzebuje pomocy w zamianie
kmph napisał(a):
Czy umiesz przynajmniej obsługiwać we/wy plików w C?
Nigdy wcześniej nie musiałem tego robić, więc doswiadczenia w obslugiwaniu plikow nie mam
Jak oczekujesz usługi translacji kodu na inny język, to może powinienem przenieść do https://4programmers.net/Forum/Og%C5%82oszenia_drobne ?
Nie chodzi mi o przepisanie całego kodu, tylko kilka wskazówek że np w danej linijce użyc printf lub tego typu rzeczy. Żeby nie było niejasnosci , proszę teraz o zamianę tylko tych 3 linijek , z resztą bedę starać sie sam
plik >> k >> n;
plik >> tab[i];
cout <<tab[i] << " ";
Niech stracę.
ifstream plik;
plik.open( "ini.txt", std::ios::in | std::ios::out );
Otwiera plik w trybie odczytu i zapisu (i, nie jestem 100% pewien, ale chyba robi to nieprawidłowo). Odpowiednik: fopen
ofstream plik( "out.txt" );
- otwiera plik chyba tylko do zapisu. Także odpowiednik fopen
plik.close();
- fclose();
- w C przydałoby się do tego jeszcze sprawdzać czy nie zwróciło kodu błędu
plik >> zmienna1 >> zmienna2
- zapisuje dane z pliku do zmiennych. Odpowiednik: fscanf
cin >> zmienna1 >> zmienna2
- zapisuje dane ze standardowego wejścia. Odpowiednik: scanf
plik << zmienna1 << zmienna2
- zapisuje dane do pliku. fprintf
cout << zmienna1 << zmienna2
- do standardowego wyjścia. printf
cout << endl
- robi to samo co printf('\n')
ORAZ czyści bufor.
plik.good()
- czy dotąd nie było błędów w operacjach we/wy na plik
takich jak niepoprawnie sformatowane dane lub koniec pliku
Dziękuję bardzo za pomoc! Te wskazówki wiele ułatwią
Jak skończysz, pokaż kod, w C naprawdę łatwo się rypnąć szczególnie jak się go dobrze nie zna.
void open()
{
FILE *plik;
fopen( "ini.txt","r" );
if( plik.good())
{
fscanf(plik,"%d","%d",&k,&n);
tab =new int[n];
for (int i=0; i<n; i++)
{
fscanf(plik,"%d",&tab[i]);
}
printf('\n') ;
fclose();
}
}
Czy plik otwarcia ma tak dokładnie wyglądać w C ?
Nie możesz jakiegoś tutoriala na webie przeczytać? To nie jest problem nieznajomości C++, to jest problem fundamentalnej nieznajomości C!
FILE *plik;
fopen( "ini.txt","r" );
Pytanie o podstawy: jaką wartość ma wskaźnik *plik
po wykonaniu tych dwóch linijek i dlaczego jakiekolwiek późniejsze operacje na plik
są nieprawidłowe?
if( plik.good())
- czy C w ogóle obsługuje taką składnię??
fscanf(plik,"%d","%d",&k,&n);
- jeśli nie wiesz, jak się używa scanfa w C, to co chcesz osiągnąć?
tab =new int[n];
- to znowu C++ a nie C. W C masz malloc
/calloc
/realloc
/free
. I uwaga, bo popełnić poważny błąd tu naprawdę łątwo.
fclose();
- no ale CO zamykasz?
Ogólnie radzę albo zlecić komuś to zadanie albo zacząć uczyć się C od podstaw, od prostszych zadań. Jeśli wybierzesz tę drugą drogę, będziemy w stanie Ci na forum pomóc, z prostszymi zadaniami, bo wtedy będzie mniej do wytłumaczenia na post. Bo obecnie nie wiem, co mam odpowiedzieć. Mam w zasadzie 2 wyjścia: albo zacząć Ci przepisywać podręcznik uczący C od podstaw, na co nie mam czasu, albo po prostu zrobić tę pracę za Ciebie.
@Oqqo programowanie to nie a sprobuje sobie dopisac cos tutaj i troszke poprzekrecam tutaj i moze zadziala
Widac u Ciebie calkowity brak wiedzy. Jezeli oczekujesz gotowca zaplac, jezeli nie. Prosze poczytaj choc troche o podstawach zamiast zgadywac (wygoogluj sobie operacje na plikach C
)
Wydaje mi się, że to czego szukasz znajdziesz tutaj:
https://pl.wikibooks.org/wiki/C/Czytanie_i_pisanie_do_plików