Strona 1 z 1
gedit automatyczne tabulatory
: 29 paź 2016, 16:53
autor: kokodyn
Cześć,
Jak ustawić w programie gedit żeby robił automatyczny TAB po kliknięciu ENTER w taki przypadku?
main()
{
chodzi mi oto żeby automatycznie zrobił TAB po wykryciu otwartego nawiasu {
}
Re: gedit automatyczne tabulatory
: 29 paź 2016, 17:03
autor: Adlatus
Zainstaluj geany i nie będziesz musiał o nic pytać.
Re: gedit automatyczne tabulatory
: 31 paź 2016, 23:04
autor: kokodyn
Dziękuje właśnie takiego programu szukałem.
Re: gedit automatyczne tabulatory
: 13 sty 2017, 15:31
autor: kokodyn
Mam teraz następny problem z z programowaniem w C w Geany.
Potrzebuje skompilować i uruchomić dwa pliki źródłowe i jeden nagłówkowy. Domyślam się że chodzi o takie jakie mam opcje ustawione w momencie kompilownia i budowania. Jak to trzeba poprawnie zrobić, dziękuje z góry za wszelką okazaną pomoc.
Błąd przy próbie zbudowania pliku hotel.c wygląda następująco:
Kod: Zaznacz cały
gcc -Wall -o "oplaty" "oplaty.c" (w katalogu /home/maciej/Pulpit/rozdział 9)
/tmp/ccetpIgF.o: In function `main':
oplaty.c:(.text+0x81): undefined reference to `pobierznoce'
oplaty.c:(.text+0x9b): undefined reference to `pokazcene'
oplaty.c:(.text+0xa0): undefined reference to `menu'
collect2: error: ld returned 1 exit status
Kompilacja nie powiodła się
Pliki źródłowe poniżej:
Kod: Zaznacz cały
hotel.c
#include<stdio.h>
#include "hotel.h" // definicja stałych i prototypów
int menu(void)
{
int kod, stan;
printf("\n%s%s\n",GWIAZDKI,GWIAZDKI);
printf("podaj numer hotelu:\n");
printf("1 Marek Antoniusz 2 orzeszek Kuba\n");
printf("3 U marynarza 4 Hajduczek\n");
printf("5 koniec\n");
printf("\n%s%s\n",GWIAZDKI,GWIAZDKI);
while((stan = scanf("%d",&kod)) != 1 || kod > 5 || kod < 1)
{
if(stan != 1)
scanf("%*s");
printf("Man podaj liczbę z zakresu od 0 do 5");
}
return kod;
}
int pobierznoce(void)
{
int noce;
printf("ile nocy potrzeba");
while((scanf("%d",&noce)) != 1)
{
scanf("%*s");
printf("przyjacielu podaj z łąski swoje liczbę całowita");
}
return noce;
}
void pokazcene(double hotel, int noce)
{
int i;
double przelicznik;
double suma;
for(i = 1;i <= noce;i++, przelicznik *= RABAT)
suma += hotel * przelicznik;
printf("całkowity koszt za %d nocy wyniesie %f",noce,suma);
}
Kod: Zaznacz cały
oplaty.c
/* pogram przchowuje funckcje main() */
#include<stdio.h>
#include "hotel.h" // definicja stałych i prototypów
int main(void)
{
int noce;
double hotel;
int kod;
while((kod = menu()) != KONIEC)
{
switch(kod)
{
case 1: hotel = HOTEL1;
break;
case 2: hotel = HOTEL2;
break;
case 3: hotel = HOTEL3;
break;
case 4: hotel = HOTEL4;
break;
default: hotel = 0.0;
printf("ups coś się jebło\n");
}
noce = pobierznoce();
pokazcene(hotel, noce);
}
return 0;
}
Kod: Zaznacz cały
hotel.h
// tu będą wszytskie stałe i prototypu funkcji
#define KONIEC 5
#define HOTEL1 50.0
#define HOTEL2 55.0
#define HOTEL3 80.0
#define HOTEL4 100.0
#define RABAT 0.95
#define GWIAZDKI "*****************"
int menu(void);
int pobierznoce(void);
void pokazcene(double,int);
Re: gedit automatyczne tabulatory
: 13 sty 2017, 15:39
autor: ka_o_3991
includujesz hotel.h, ale w żadnym momencie nie kompilujesz hotel.c, więc ld nie ma z czym powiązać nazw funkcji zadeklarowanych w hotel.h
Re: gedit automatyczne tabulatory
: 13 sty 2017, 15:51
autor: kokodyn
ok, co teraz w takim razie powinienem zrobić?
błąd przy kompilowaniu hotel.c jest następujący
Kod: Zaznacz cały
gcc -Wall -o "hotel" "hotel.c" (w katalogu /home/maciej/Pulpit/rozdział 9)
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
Kompilacja nie powiodła się
Re: gedit automatyczne tabulatory
: 13 sty 2017, 15:53
autor: kokodyn
Forum wyrzuca jakiś błąd gdy wklejam cały kod, brakuje kilkunastu wierszy zaczynających się od /usr/bin/ld:
Re: gedit automatyczne tabulatory
: 13 sty 2017, 16:15
autor: ka_o_3991
samego hotel.c nie skompulujesz. Nie jestem pewny komendy, (nie mam teraz możliwości sprawdzić) ale zobacz
- z dwóch plików źródłowych musisz zbudować jeden wyjściowy.