خواندن از فایل در c - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

خواندن از فایل در c

+2 امتیاز

سلام خسته نباشید

می خواستم بدونم که توی c چطوری میشه از فایل اطلاعاتی رو خوند ؟؟

من می خوام اطلاعات رو به این شکل بخونم چکار باید بکنم ؟

23 2
7 1
64 16
0 0

برای حل این سوالات

http://icpc.sharif.edu/acmicpc11/problems/

سوال شده فروردین 5, 1393  بوسیله ی حمید رضوانی (امتیاز 28)   1 3 3
دوباره نشان داده شد فروردین 5, 1393 بوسیله ی حمید رضوانی

1 پاسخ

+4 امتیاز
 
بهترین پاسخ

FILE : َ  ساختاریه که وظیفش نگه داری اطلاعات در مورد فایل هستش .

*FILE : اشاره گر به FILE

برای باز کردن فایل از fopen استفاده می کنیم :

FILE * fopen ( const char * filename, const char * mode );

ورودی اول محل ذخیره سازی فایل هستش

و ورودی دوم حالتی که می خواهیم فایل باز بشه که این حالت ها به شکل زیر هستن :

  • r : باز کردن فایل برای خواندن . فایل حتما باید وجود داشته باشه
  • w :  باز کردن فایل برای نوشتن در صورت موجود نبودن فایل ساخته میشه و در صورت وجود داشتن اطلاعات فایل قبلی پاک میشه .
  • a : فقط اجازه نوشتن به آخر فایل رو به ما میده
  • b : نوشتن در حالت باینری
  • +r : باز کردن فایل برای نوشتن و خواندن
  • +w :  کارکرد مثل w هستش با این تفاوت که توی این حالت از فایل اطلاعات رو هم میشه خوند
  • +a : مثل a کار می کنه با این تفاوت که اجازه خوندن فایل رو هم میده

مثال :

FILE *f1=fopen("test.txt","a+");
FILE *f1=fopen("c:\\test","w");
FILE *f1=fopen("c:\\test","wb+");\\write read  in binary mode

خواندن و نوشتن داخل فایل :

برای خواندن اطلاعات ار  فایل ار این توابع استفاده می کنن :  fsacnf , fgets , get  نحوه عملکردشون هم مشابه  توابع scanf,gets,get که برای خوندن از کنسول استفاده میشن

و برای نوشتن از توبعی مثل fputs,fprintf , ... استفاده کرد

به عنوان مثال این برنامه رو در نظر بگیرید فایل با فرمتی که گفتید رو می خونه و جمع هر سطر رو داخل یک فایل دیگه ذخیره می کنه :

#include <stdio.h>
#include <stdlib.h>
int main()
{
   char loc[25];
   FILE *file,*output;

   printf("file loc ?? ");
   gets(loc);
   file=fopen(loc,"r");

   const int size=4;
   int col1[size],col2[size];
   int a,b;
   int e=0;
   while(fscanf(file,"%d %d",&a,&b)!= EOF )
   {
       col1[e]=a;
       col2[e]=b;
       ++e;
   }

   printf("output  loc ?? ");
   gets(loc);
   output=fopen(loc,"w");
   for(int i=0;i<e;++i)
   {
       fprintf(output,"%d\n",col1[i]+col2[i]);
   }

   fclose(file);
   fclose(output);

   return 0;
}

بعد از نوشتن یا خواندن اطلاعات از فایل حتما باید فایل بسته بشه

برای بستن فایل باید شی که از FILE ساختید رو به fclose بفرستید که داخل مثال بالا هم ازش استفاده کردم .

 

پاسخ داده شده فروردین 5, 1393 بوسیله ی PSPCoder (امتیاز 1,301)   14 40 57
انتخاب شد فروردین 9, 1393 بوسیله ی حمید رضوانی
...