Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
[ d ] Гость
|
Добавлено: Чт Ноя 18 2004 01:51 Заголовок сообщения: функция ФОПЕН |
|
|
челы кто знает хорошо Си помогите правильно синтаксис написать плиз а то запарился все что не пишу все неработает и немогу никак файл открыть
FILE *fl ;
fl = fopen ( "c:\read.txt" , "r" ) ;
тут типа всякие примочки
fclose ( fl ) ;
я просто нигде не могу пример найти конкретный и незнаю как писать правильно , и как потом прочитать из файла текст мне надо считывать его из ФЛ или ФЛ уже само содержит текст , потому что как я понял ФЛ должно содержать только ссылку на файл |
|
Вернуться к началу |
|
|
Andy_user
Зарегистрирован: 03.12.2003 Сообщения: 382 Откуда: Санкт-Петербург
|
Добавлено: Чт Ноя 18 2004 11:12 Заголовок сообщения: |
|
|
#include <string.h>
#include <stdio.h>
int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20];
if ((stream = fopen("c:\\DUMMY.FIL", "w+"))
== NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
/* write some data to the file */
fwrite(msg, strlen(msg)+1, 1, stream);
/* seek to the beginning of the file */
fseek(stream, SEEK_SET, 0);
/* read the data and display it */
fread(buf, strlen(msg)+1, 1, stream);
printf("%s\n", buf);
fclose(stream);
return 0;
} _________________ Знание принципов компенсирует незнание фактов. |
|
Вернуться к началу |
|
|
[ d ] Гость
|
Добавлено: Пт Ноя 19 2004 17:28 Заголовок сообщения: |
|
|
о спасибо работает теперь , все путем стало ...
не к теме :
только вот что то я замечаю оень часто что функция ПРИНТФ иногда какую то чуш выдает , бывает как выдаст то что даже и близко не просил , особенно я немогу вьехать в то как она считывает с массива
а конкретно там был такой момент когда сначала был обьявлен массив с 20 байтами в запасе а потом было в него считано скажем 10 байт , дак вот потом когда я этот массив распечатываю с помощью функции ПРИНТФ у меня на экране появляется что то типа на подобие :
привет чел*х%"№"!
красным выделено то что появляется откудато видимо со стека но как оно оказалось в моем массиве я до сих пор не могу понять , может кто в курсе этого и может пролить свет на это дело |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Вс Ноя 21 2004 21:43 Заголовок сообщения: |
|
|
После привет чел дописывай '\0', и все путем будет. |
|
Вернуться к началу |
|
|
LKT_D
Зарегистрирован: 19.11.2004 Сообщения: 14
|
Добавлено: Вс Ноя 21 2004 22:20 Заголовок сообщения: |
|
|
Anonymous писал(а): | дописывай '\0', и все путем будет. |
наверное так и надо делать а то другого выхода нету ...
можно конечно и нечитать то что незаписано но не всегда ведь знаеш скока символов записано особенно если расчитано на то что кто то другой ьудет вводить
не к теме :
а кстати я еще вот заметил что иногда встречается что то на подобие [ переменная - '0' ]
в качестве переменной было кажется строка и простые символы , это вообще обязательно употреблять или можно обойтись без - '0' _________________ free forever |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Пн Ноя 22 2004 21:50 Заголовок сообщения: |
|
|
Строки в С устроены так что они кончаются нулем. Собственно, в самом языке строковых переменных нет, все чем мы пользуемся когда работаем со строками это библиотечные функции, а массив char[] или char* это не есть строки. Ф-я printf будет печатать твой массив до тех пор пока не встретит ноль. Функции для работы с строками (sprintf, strcpy, strcat, strdup и т.д. ) все добавляют ноль в конце строки. |
|
Вернуться к началу |
|
|
LKT_D
Зарегистрирован: 19.11.2004 Сообщения: 14
|
Добавлено: Ср Ноя 24 2004 21:15 Заголовок сообщения: |
|
|
спасибо что объяснил , просто как сам сказал не везде толком можно прочитать что это такое - это касается абсолютно всего , в большинстве случаев в учебниках пишут мимолетом в 2х словах , а ты сам потом разгребай что за яйца и в профиль они или нет , вот и приходится спрашивать понимаю что может иногда тупо получается но больше спросить неукого , так что извиняйте _________________ free forever |
|
Вернуться к началу |
|
|
|