Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2008, 12:10   #1
Swool
Пользователь
 
Регистрация: 12.07.2008
Сообщений: 39
По умолчанию Запись в файл и чтение из него.

Вот и добрался я в книге до записи файла и чтения из него
только там все вокруг да около пишут...
как вместо комментов вставить добавку в конец файла или замену файла целиком? предположим, что файл называется file.txt
Код:
#include <stdio.h>
#include <conio.h>

main(){
       
       int a;
       a=0;
       
       FILE *fp;
       
       
       puts("           Введите \"1\", если желаете добавить данные в конец файла");
       puts("           Введите \"2\", если желаете заменить файл целиком");
              
       scanf("%d",&a);
       
       if(a==1){
               //добавляем в конец файла
               }
       if(a==2){
               //заменяем целиком
               }
       else 
           puts("Вы должны ввести \"1\" или \"2\"");
       
       
       getch();
       return 0;
       }

Последний раз редактировалось Swool; 24.08.2008 в 12:13.
Swool вне форума Ответить с цитированием
Старый 24.08.2008, 13:28   #2
drRobert
Пользователь
 
Аватар для drRobert
 
Регистрация: 07.08.2008
Сообщений: 33
По умолчанию

подключай windows.h и юзай API:
ReadFile - чтение
WriteFile - запись
SetFilePointer - изменение положения указателя
CreateFile - создание/открытие
CloseHandle - закрытие

hFile = CreateFile(lpFileName, FILE_READ_ATTRIBUTES,FILE_SHARE_REA D | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, 0, 0);
ReadFile(hFile, Buff, Size, &Bytes, NULL);
CloseHandle(hFile);
"... Раньше мы жили завтра, а теперь и сегодня - вчера
Вместо Роллингов - хакеры, вместо Битлов - юзера..."
(с) Б.Г.

Последний раз редактировалось drRobert; 24.08.2008 в 13:31.
drRobert вне форума Ответить с цитированием
Старый 24.08.2008, 21:03   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
FILE *f;
if ((f = fopen("file.txt", "a")) != NULL)
  {
  fprintf(f, "%s", "Эта строка была добавлена в конец файла");
  //или можно fputs("Эта строка была добавлена в конец файла", f)
  fclose(f);
  }
Соответственно, чтобы перезаписать файл, нужно функции fopen второй параметр передать "w"
P.S. WinApi, конечно, тоже можно юзать, но если уж учишь C++, то сначала нужно учить язык, а уж потом те возможности, которые предоставляет операционка
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 24.08.2008, 21:42   #4
Swool
Пользователь
 
Регистрация: 12.07.2008
Сообщений: 39
По умолчанию

А что значит FILE *f;, file это я так понял указатель на то, что сейчас дело будет касаться какого-то файла. А что значит *f ?
Swool вне форума Ответить с цитированием
Старый 25.08.2008, 11:03   #5
qwerty34
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Swool Посмотреть сообщение
А что значит FILE *f;, file это я так понял указатель на то, что сейчас дело будет касаться какого-то файла. А что значит *f ?
Ну вы когда переменную обьявляете, ты пишете int a; или int *a;
Вот здесь примерно тоже самое, только для файла
(Если совсем просто!)
qwerty34 вне форума Ответить с цитированием
Старый 25.08.2008, 11:07   #6
qwerty34
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 10
По умолчанию

FILE *f;
f=fopen("file.txt","wt+"); //создает новый текстовый файл или обновляет существующий. (Если нужно полностью переписать инфу)
f=fopen("file.txt","at+"); //добавляет в конец файла (я всегда так пишу, но возможно, что в этом варианте плюс и t не нужны!)
qwerty34 вне форума Ответить с цитированием
Старый 25.08.2008, 16:50   #7
Swool
Пользователь
 
Регистрация: 12.07.2008
Сообщений: 39
По умолчанию

блин, всеравно не получается...как сделать-то, чтоб я сначало выбирал 1 или 2, а потом вводил текст?
мне надо внести char letter или как все это происходит?
Код:
#include <stdio.h>  
#include <conio.h>  
  
main(){ 
        
       int a; 
       a=0; 
        
       FILE *fp; 
        
        
       puts("           Введите \"1\", если желаете добавить данные в конец файла"); 
       puts("           Введите \"2\", если желаете заменить файл целиком"); 
               
       scanf("%d",&a); 
        
       if(a==1){
               f=fopen("file.txt","a");
               fclose(f);
               } 
       if(a==2){
               f=fopen("file.txt","w");
               fclose(f);
               } 
       else   
           puts("Вы должны ввести \"1\" или \"2\"");  
         
         
       getch();  
       return 0;  
       }

Последний раз редактировалось Swool; 25.08.2008 в 17:02.
Swool вне форума Ответить с цитированием
Старый 26.08.2008, 07:49   #8
qwerty34
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 10
По умолчанию

Как у вас вообще тот код скомпилился, если вы пишите:
FILE *fp;
а потом к файлу обращаетесь через f?

Я не понял вопроса, что значит сначала выбрал вариант, а потом вводил текст.
Если нужно введеную с клавы информацию записать в файл, то пишется так:

puts("Введите \"1\", если желаете добавить данные в конец файла");
puts("Введите \"2\", если желаете заменить файл целиком");

scanf("%d",&a);

if(a==1){
f=fopen("file.txt","a");
// здесь считываем текст
fclose(f);
}
if(a==2){
f=fopen("file.txt","w");
// здесь считываем текст
fclose(f);
}
else
puts("Вы должны ввести \"1\" или \"2\"");
qwerty34 вне форума Ответить с цитированием
Старый 26.08.2008, 16:39   #9
TitanicMan
Пользователь
 
Регистрация: 01.07.2008
Сообщений: 15
По умолчанию

Код:
...
char buf[MAX_STRING];
if(a==1)
{fl=fopen("file.txt","a+");
   if(fl!=NULL)
  {
      scanf("%s",&string);
      fprintf(&fl,"%s",string);
  }
   else
       printf("Ошибка открытия файла");
}
if(a==2)
{
    fl=fopen("file.txt","w+");
   ...
}
TitanicMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись и чтение файла... Altera Общие вопросы Delphi 5 06.05.2008 20:22
Запись и чтение сообщений Altera Работа с сетью в Delphi 6 13.04.2008 03:31