Премини към съдържанието
От 1-ви септември 2021 г., вход във форумите ще е възможен само с имейл адрес вместо потребителско име. Ако не помните имейла с който сте се регистрирали, вижте го в настройките на профила си. ×
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

C - Работа с txt файлове


Niksanbg94

Препоръчан отговор


Здравейте ! Искам да попитам по какъв начин мога да отворя txt файл , като не съм го определил в кода на програмата , а се въвежда името му със началото на програмата. И същото условие обаче за създаване на файл.Ето какво съм написал но дава грешка, рових се в интернет но не можах да намеря точно това което ми трябва.За първи път работя с файлове може отговорът на въпроса ми да е много лесен , но когато не знае човек и лесните отговори ги открива трудно . Ето моето грешно творение :
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
   char ime[1000];
   printf("Vuvedeto imeto na faila \n");
   scanf("%[^\n]s",&ime);
   FILE *file=fopen("C:\\ %s",ime,"r");
   printf("%c\n", fgetc(file));
   fclose(file);

   _getche();
   return 0;
}

Как трябва да бъде написан този ред (FILE *file=fopen("C:\\ %s",ime,"r"); ) със сигурност метода ми е грешен.Благодаря предварително smiley.gif

Линк към коментара
Сподели в други сайтове

   char path[255]="C:\\";
   char ime[255];
   printf("Vuvedeto imeto na faila \n");
   scanf("%s",&ime);
   strcat(path,ime);
   FILE *file=fopen(path,"r"); 

Пробвах ето така да го направя :

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<string.h>

int main()

{

   char c;

   char path[255]="C:\\";

   char ime[255];

   printf("Vuvedeto imeto na faila \n");

   scanf_s("%s",&ime);

   strcat_s(path,ime);

   FILE *file=fopen(path,"r");

   do

   {

       c=fgetc(file);

       printf("%c",c);

   }

    while(c!=EOF);

    fclose(file);

    _getche();

    return 0;

}

 

но ми дава грешка file :undecleared identifier и също така function' : 'FILE *' differs in levels of indirection from 'int'  , fclose' : different types for formal and actual parameter 1, да не трябва да се напише нещо допълнително в скобите на  int main() ?Извинявам се ако въпросът ми е елементарен но за пръв път се опитвам да използвам файлове. Благодаря предварително :)

Линк към коментара
Сподели в други сайтове

Предполагам че проблема ти е в майкрософтския компилатор като гледам тея _s опашки иначе програмата си работи само дето няма проверка дали наистина си отворил файла, ако след fopen()  file е равно на NULL трябва да изкараш съощение за грешка. И е по-добре да се ползва while при четенето.

   FILE *file=fopen(path,"r");
   if (file) {
      while ((c=fgetc(file))!=EOF)
          putchar(c);
      fclose(file);
   } else perror(path);
Линк към коментара
Сподели в други сайтове

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване