Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 5 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 17.07.2005
Я попытался сделать так:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
main ()
{
FILE *F;
F = fopen("test.txt", "r+");
cout<<fprintf(F,"fhtrhgfh");
getch();
}

Но ничего невышло.Подскажите плиз, где ошибка?



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
_nic
Второй параметр fopen нужно "w" ставить для записи. Точнее для создания(и очистки если был такой) файла, если же файл есть то писать можно и с "r"(в этом случае содержимое не стирается).
можно например вот так:
Код:
#include <stdio.h>
int main(){
  FILE* f = fopen("test.txt","w+");
  fprintf(f,"dfgdg");
  fclose(f);
  return 0;
}


 

Member
Статус: Не в сети
Регистрация: 01.10.2005
Файлы закрывать надо(показано выше), а ошибка в cout, видимо. r+ стоит верно, это и чтение и запись,но файл должен существовать.

_________________
я теперь снова Junior )


 

Member
Статус: Не в сети
Регистрация: 17.07.2005
Файл в одной папке с exe и с названием test.txt существовал.cout выдал 8 , тоесть ошибки как бы непроизошло но файл всеравно оказался пустой :( .
Вся проблема решилась компиляцией на 6 борланд билдере.
Ещё такой вопрос как мне из txt файла вывести в char? Делаю примерно так:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <io.h>
main ()
{
int a;
void *buf[16];
FILE *F;
F = fopen("test.txt", "r");
a=_fileno(F);
read(a,buf,16);
cout<<buf;
getch();
fclose(F);
}

А выводится какая то шестнадцетиричная чепуха :insane:


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
_nic
Должно работать. Единственное что файл всёже закрывать надо. Но это не столь критично, т.к. при завершении работы программы автоматически закроются все дескрипторы. Другое дело если ты смотрел файл до завершения (до нажатия любой клавиши от getch() ). Есть ещё один вариант рабочая папка программы во время выполнения не совпадает с папкой где находится сама экзэшка. Как пример запуск программы в MS C++ из среды: программа находится в папке Release(или Debug), а рабочая папка на уровень выше. Поэтому вполне возможно ты просто не тот файл смотрел. Проверь функцией GetCurrentDirectory.

лучше позно чем никогда :)
А какой был до этого компилятор?

Код:
void *buf[16];

Что-то здесь не чисто. Почему бы не проще:
Код:
char buf[16]

Добавлено спустя 22 минуты, 58 секунд
_nic писал(а):
А выводится какая то шестнадцетиричная чепуха

Кстати за что не люблю cin'ы и cout'ы (под автматом не буду пользоватся :) ) так это за его самостоятельность, а люблю управлять выводом: если сказал выводить числом значит числом. В твоём случае имеется массив указателеей вот он как адреса и интерпретировал наверное(хотя я может ошибаюсь - не знаток).


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 5 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan