[C] Obsługa plików
-
- 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
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.
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.
- dawwin
- 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
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
Nie pomagam na PW
-
- 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
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.
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.
- beluosus
- 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
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ć:
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
-
- 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
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.
/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.
- Hauleth
- 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
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/
Biblioteka do C++ - Bust Lib: http://code.google.com/p/bust/
-
- 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
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
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
- kabanek
- 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
mi się kompiluje i wychodzi coś takiego (załącznik)
- Załączniki
-
- test_c.tar.gz
- (1.92 KiB) Pobrany 58 razy
-
- 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
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.
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.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości