maciek112 Temat założony przez niniejszego użytkownika |
[c] Błąd konwersji przy zapisywaniu iteracji do pliku » 2013-10-19 11:26:56 Witajcie. Co jest nie tak z tym kodem, że nie mogę do treści pliku zapisać numeru iteracji pętli ? #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h>
int main( int argc, char const * argv[] ) { int n, i; char buffer[ 100 ]; scanf( "%d", & n ); for( i = 0; i < n; i++ ) { snprintf( buffer, 100, "file_%d.txt", i ); int fd = open( buffer, O_RDWR | O_CREAT, 0600 ); write( fd, i, sizeof( n ) ); close( fd ); } return 0; } |
|
Monika90 |
» 2013-10-19 18:54:14 Drugim argumentem dla write ma być wskaźnik, a nie int. |
|
maciek112 Temat założony przez niniejszego użytkownika |
» 2013-10-20 11:48:17 Jak daję tak: int * wx; wx = & i;
write( fd, * wx, sizeof( n ) ); to też nie działa :( |
|
pekfos |
» 2013-10-20 12:58:14 Masz podać wskaźnik, a nie int. |
|
maciek112 Temat założony przez niniejszego użytkownika |
» 2013-10-21 13:05:35 Zrobiłem teraz tak: int main( int argc, char * argv[] ) { int n, i; char buffer[ 100 ], * x; scanf( "%d", & n ); if( argc != 2 ) { perror( "Blad - zla liczba parametrow" ); return 0; } for( i = 0; i < n; i++ ) { snprintf( buffer, 100, "file_%d.txt", i ); int fd = open( buffer, O_RDWR | O_CREAT, 0600 ); x = itoa( i, buffer, 10 ); write( fd, x, sizeof( i ) ); close( fd ); } return 0; } I tworzy ten plik, ale jest inny problem: do pliku oprócz tego mojego numeru doklejają się też jakieś krzaczki. Czemu ? A druga sprawa to czemu nie działa mi sprawdzanie czy są 2 argumenty ? |
|
Monika90 |
» 2013-10-21 13:20:04 Zapisujesz zawsze sizeof(int) znaków, a nie tyle ile itoa zapisało do bufora. A druga sprawa to czemu nie działa mi sprawdzanie czy są 2 argumenty ? |
Bo jak są 2 argumenty, to argc jest równe 3. |
|
maciek112 Temat założony przez niniejszego użytkownika |
» 2013-10-21 13:28:42 To co tam umieścić w 3-cim argumencie we write ? |
|
Monika90 |
» 2013-10-21 13:33:32 To co tam umieścić w 3-cim argumencie we write ? |
Ilość znaków które chcesz zapisać. |
|
« 1 » 2 |