[C] Obsługa plików

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
tomeks91
Piegowaty Guziec
Piegowaty Guziec
Posty: 26
Rejestracja: 07 paź 2010, 21:04
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

[C] Obsługa plików

Post autor: tomeks91 »

Mam problem z poprawnym wczytaniem wektora zapisanego w pewnej formie w pliku o nazwie "plik"
Moje pytanie jeśli chce się do niego dostać i w funkcji głównej napisałem
FILE *plik = argc > 1 ? fopen( argv[1], "r") : stdin;
to jest dobrze?

Pisze polecenie ./a.out plik i nie działa tak jak powinno chociaż niby czyta, bo jak wpisuje inną nazwę pliku to wyskakuje błąd który jest opisany w funkcji głównej.
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [C] Obsługa plików

Post autor: dawwin »

Wyrażenie warunkowe jest w porządku. Błąd musisz mieć w innym miejscu
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
tomeks91
Piegowaty Guziec
Piegowaty Guziec
Posty: 26
Rejestracja: 07 paź 2010, 21:04
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C] Obsługa plików

Post autor: tomeks91 »

Nie wiem czy nie prosze o za dużo, teraz na uczelni przerabialiśmy to:
http://wikidyd.iem.pw.edu.pl/index.cgi/Jimp1/Lab/2
Zapisuje sobie plik bibl.h, bibl.c i ostatni plik main.c
Jak mam to skompilować/poprawić czy oprócz cc -Wall używać jakichś innych instrukcji do kompilowania?

Już samo bibl.c powinno być chyba skompilowane a sie nie chce.

Dodam że tym co pisze we wstępie to się nie zajmowaliśmy, mieliśmy po prostu przekopiować bibl.h i bibl.c
i zrobić włąsne main.c lub też potem popatrzyć na gotowca.
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: [C] Obsługa plików

Post autor: beluosus »

Piszesz tak jakbyś koniecznie nie chciał uzyskać pomocy. Nie napisałeś jak kompilujesz/jaki błąd otrzymujesz. Zakładam więc, że kompilujesz jeden plik.

viewtopic.php?t=79245 ->
http://czytelnia.ubuntu.pl/index.php/20 ... ie-ubuntu/ ->
"Chcąc skompilować program składający się z kilku plików źródłowych ..."

Na stronie, którą podałeś też jest polecenie w jaki sposób kompilować:

Kod: Zaznacz cały

cc -Wall -o t1 test.c bibl.c -lm
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
tomeks91
Piegowaty Guziec
Piegowaty Guziec
Posty: 26
Rejestracja: 07 paź 2010, 21:04
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C] Obsługa plików

Post autor: tomeks91 »

Jak kompiluje w ten sposób ukazuje sie ten błąd:

/usr/lib/crt1.o(.text+0x7f): In function `_start':
: undefined reference to `main'

My używamy vima, ale to chyba bez znaczenia.

PS. Będę wdzięczny za każdą pomoc.
Awatar użytkownika
Hauleth
Wytworny Kaczor
Wytworny Kaczor
Posty: 382
Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C] Obsługa plików

Post autor: Hauleth »

nie linkujesz pliku z funkcją main()
Jeśli problem rozwiązany dodaj na początku tematu [SOLVED].

Biblioteka do C++ - Bust Lib: http://code.google.com/p/bust/
tomeks91
Piegowaty Guziec
Piegowaty Guziec
Posty: 26
Rejestracja: 07 paź 2010, 21:04
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C] Obsługa plików

Post autor: tomeks91 »

Dopisałem #include "zwykladu.c"
i oto błędy:

cc: test.c: No such file or directory
In file included from bibl.c:2:
zwykladu.c:1:21: error: stdio.h : No such file or directory
zwykladu.c:5:21: error: calling fdopen: Bad file descriptor
In file included from bibl.c:2:
zwykladu.c: In function 'main':
zwykladu.c:29: warning: implicit declaration of function 'exit'
zwykladu.c:29: warning: incompatible implicit declaration of built-in function 'exit'

EDIT:
Teraz zamiat test.c wpisuje zwykladu.c czyli plik z funkcją main
Poprawiłem exit tzn. zamieniłem na return i są tylko takie błędy

volt% cc -Wall -o zwykladu.c bibl.c -lm /* tak kompiluje*/
In file included from bibl.c:2:
zwykladu.c:1:21: error: stdio.h : No such file or directory
zwykladu.c:5:21: error: calling fdopen: Bad file descriptor
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: [C] Obsługa plików

Post autor: kabanek »

mi się kompiluje i wychodzi coś takiego (załącznik)
Załączniki
test_c.tar.gz
(1.92 KiB) Pobrany 58 razy
tomeks91
Piegowaty Guziec
Piegowaty Guziec
Posty: 26
Rejestracja: 07 paź 2010, 21:04
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C] Obsługa plików

Post autor: tomeks91 »

Ja to zrobiłem tak: kopiuje pierwszy kod zapisuje jako bibl.h
drugi jako bibl.c
trzeci jako test.c
i kompiluje w ten sposób
cc -Wall -o t1 test.c bibl.c -lm

Pewnie coś robię źle ale nie wiem co.

Teraz wyskakuje

volt% cc -Wall -o t1 test.c bibl.c -lm
test.c:1:21: error: stdio.h : No such file or directory
test.c: In function 'main':
test.c:29: warning: implicit declaration of function 'exit'
test.c:29: warning: incompatible implicit declaration of built-in function 'exit'

EDIT:
Coś jest nie tak, kompiluje w putty i nawet przy prostych programikach nie mam dostępu do bibliotek stdlib.h stdio.h
Kompiluje sobie:
nowy.c:1:20: error: stdio.h: No such file or directory
nowy.c:2:21: error: stdlib.h : No such file or directory
Ale chyba zawsze kompilowałem w puttym i było ok sprawdze jeszcze w terminalu ubuntu.

EDIT:
Na szczęście już wszystko gra po prostu przy kopiowaniu jakoś się tak to robiło że format tekstu czy coś się nie zgadzało.
Nadal jednak wyświetlały się błędy z exit, którego zmieniłem na return 1 i gra.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości