PDA

View Full Version : سوال: استفاده از fscanf در ویژوال(فوری)



حمیدرضا1373
سه شنبه 19 فروردین 1393, 20:18 عصر
سلام , fscanf یه تابعی که برای دریافت از فایل ها به صورت ترتیبی استفاده میشه و برای ترتیبشم از موقعیت سنج fseek استفاده میکنم اما نمیدونم یه بار درست میگیره ، یه بار اشتباه ،حسابی اذیت میکنه ، خواهشا کمکم کنید نمیدونم چیکار کنم!

مثلا بخوام این رو از یک فایل text بگیرم
{
َِ Date=89/5/15
Time= 15:25
یه رشته
}همین ترتیب چندین بار تکرار بشه

ممنون(زبان C )

hadi0x7c7
سه شنبه 19 فروردین 1393, 21:03 عصر
شما کاراکتر به کاراکتر بخونی خیلی بهتره با fgetc (http://www.cplusplus.com/reference/cstdio/fgetc/)بود فکر کنم، هر جا رسیدی به '\n' اونو بریز یه جایی.

حمیدرضا1373
سه شنبه 19 فروردین 1393, 21:09 عصر
خوب عددا رو چیکار کنم؟بعدش date رو مثلا نمیخوام جایی بریزم

omid_kma
سه شنبه 19 فروردین 1393, 21:11 عصر
سلام این لینک رو ببینید خواندن از فایل در C (http://www.7khatcode.com/2506/%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86-%D8%A7%D8%B2-%D9%81%D8%A7%DB%8C%D9%84-%D8%AF%D8%B1-c?show=2506#q2506)
اگر جاییشو نفهمیدید همون جا بپرسید جواب میدم .

حمیدرضا1373
سه شنبه 19 فروردین 1393, 21:30 عصر
ممنون ولی اونایی که تو اون لینک نوشته رو بلدم ،جواب من نبود

rahnema1
سه شنبه 19 فروردین 1393, 22:17 عصر
ببینید این تابع fscanf اسپیس و tab و newline و امثال اینها را مثل هم در نظر می گیره یعنی وقتی به این جور کاراکتر ها می رسه خواندن را قطع می کنه و فرقی بین اونها نمی ذاره

#include <stdio.h>
int main()
{
int rd=0
FILE* fp= fopen("a.txt","r") ;
while(rd!=EOF)
{
char a[100]={};
rd=fscanf(fp,"%s\n",a);
fseek(fp,0,SEEK_CUR);
printf("%s\n",a);
}
fclose(fp);
return 0;
}