PDA

View Full Version : تابع fscanf() و و چگونگی scan کردن در این کد(؟)



hosseinam1370
یک شنبه 24 اسفند 1393, 15:26 عصر
دوستان من بیشتر با سی++ کار کردم و این کد انگار الگوریتم سی داره.
سوالم اینه که من چطور میتونم مقدار عدد ممیزی (float) در این کد که بر روی فایل نوشته شده رو با fscanf () بگیرم بریزم تو متغییر m ?

اگه توضیحی درمورد این تابع دارید ، ممنون میشم یه کوتاه اینجا بنویسید.
اینم کد:
#include "stdafx.h"
#include <fstream>
#include<iostream>
#include <string>
#include<stdio.h>
using namespace std;
void main()
{
char str [80];
int f , m;
float ff = 0;
FILE * pFile;

fopen_s (&pFile , "myfile.txt","w+");
fprintf_s (pFile, "%d%f%s", 314946 ,2.3680, "PkjbuyjfgdhkjI");
rewind (pFile);
fscanf_s (pFile, "%d", &f);
fscanf_s (pFile , "%ff" , &m );
fscanf_s (pFile, "%s", &str ,80);
fclose (pFile);
printf ("I have read: %d %f and %s \n",f, ff , str);;
system("pause");
}


با تشکر.

rahnema1
یک شنبه 24 اسفند 1393, 17:48 عصر
سلام
به این صورت تغییر دادم
خود str وقتی به تابع داده می شه تبدیل به اشاره گر میشه دیگه نباید آدرس اون گرفته بشه. دو تا عدد هم پشت سر هم اگه بخواهیم چاپ کنیم حداقل یک فضای خالی باشه تا scan بتونه دو تا را تشخیص بده

#include <stdio.h>
#include <stdlib.h>

int main()
{
char str [80];
int f ;
float ff ;

FILE * pFile = fopen ( "myfile.txt", "w+");
fprintf (pFile, "%d %f%s", 314946, 2.3680, "PkjbuyjfgdhkjI");
rewind (pFile);
fscanf (pFile, "%d%f%s", &f, &ff, str);
fclose (pFile);

printf ("I have read: %d %f and %s \n", f, ff, str);
system("pause");
return 0;
}